딥러닝이란 무엇인가?
딥러닝은 기계 학습의 한 접근 방식으로, 깊이 있는 계산 스택이 특징입니다. 이러한 깊은 계산이 딥러닝 모델이 복잡하고 계층적인 패턴을 파악할 수 있게 해주며, 이는 가장 도전적인 실제 데이터셋에서 발견됩니다.
신경망은 이러한 강력함과 확장성을 통해 딥러닝의 대표적인 모델이 되었습니다.
선형 유닛 Linear Unit
y=wx+b
신경망의 연결에는 w
라고 하는 가중치가 있습니다. 값이 연결을 통해 흐를 때마다, 그 값을 연결의 가중치로 곱합니다.
신경망은 가중치를 수정함으로써 "학습"합니다.
b
는 바이어스 (bias) 라고 불리는 특별한 종류의 가중치입니다. 바이어스는 입력 데이터와 연관되지 않은 출력 값을 조정할 수 있게 해줍니다.
다중 입력
하나의 뉴런에 더 많은 입력 연결을 추가하여 각 추가 특징마다 하나의 연결을 가질 수 있습니다. 출력을 계산하기 위해 각 입력을 그 연결의 가중치와 곱한 다음, 이들을 모두 더합니다.
케라스에서 선형 유닛
케라스에서 모델을 생성하는 가장 쉬운 방법은 keras.Sequential
을 사용하는 것입니다. 이는 신경망을 레이어*의 스택으로 만듭니다. 우리는 *dense 레이어를 사용하여 위와 같은 모델을 만들 수 있습니다(다음 레슨에서 더 배울 것입니다).
다음과 같이 세 개의 입력 특징('sugars'
, 'fiber'
, 'protein'
)을 받아 하나의 출력('calories'
)을 생성하는 선형 모델을 정의할 수 있습니다:
from tensorflow import keras
from tensorflow.keras import layers
# 1개의 선형 유닛으로 네트워크 생성
model = keras.Sequential([
layers.Dense(units=1, input_shape=[3])
])
첫 번째 인자인 units
로 원하는 출력의 수를 정의합니다. 이 경우 'calories'
하나만 예측할 것이므로 units=1
을 사용합니다.
두 번째 인자인 input_shape
로 입력의 차원을 케라스에 알려줍니다. input_shape=[3]
으로 설정하면 모델은 세 개의 특징('sugars'
, 'fiber'
, 'protein'
)을 입력으로 받을 수 있습니다.
이제 이 모델은 훈련 데이터에 맞춰 조정될 준비가 되었습니다!
'컴퓨터공학 > 인공지능' 카테고리의 다른 글
Stochastic Gradient Descent 경사하강법 (83) | 2024.07.31 |
---|---|
딥뉴럴 네트워크 Deep Neural Networks (79) | 2024.07.30 |
파이선 pandas 라이브러리 get_dummies() (64) | 2024.05.28 |
Naive Bayes model, 네이브 베이즈 모델 (75) | 2024.05.27 |
k-Nearest Neighbors (k-NN) 모델 KNN (69) | 2024.05.26 |