: 입력층, 출력층, 가중치로 구성된 구조. 퍼셉트론이라는 선형 분류기
퍼셉트론: 다수의 신호를 입력으로 받아 하나의 신호 출력
: 모든 입력이 1일 때 작동
: 입력 중에서 둘 중 하나만 1이거나 둘 다 1일 때 작동
: 두 개 중 한 개만 1일 때 작동(배타적 논리합)
: 입력 값이 연산 결과에 미치는 영향력을 조절하는 요소
ex. w = 0.00, x = 10000000000 -> 0.00
: 각 노드의 신호와 가중치의 곱의 합
(=전달함수: 노드의 가중합이 계산되면 이 가중합을 활성화 함수로 보냄)
: 전달 함수에서 전달받은 값을 출력할 때 일정 기준에 따라 출력 값을 변화시키는 비선형 함수
시그모이드 함수
: 선형 함수의 결과를 0~1 사이에서 비선형 형태로 변형
하이퍼 탄젠트 함수
: 선형 함수의 결과를 -1~1 사이에서 비선형 형태로 변형
렐루 함수(Relu)
: 입력이 음수일 때는 0 출력, 양수일 때는 x 출력
리키 렐루 함수(Leaky Relu)
: 입력이 음수일 때는 0이 아닌 매우 작은 수 반환
소프트맥스 함수(Softmax)
: 입력 값을 0~1 사이에 출력되도록 정규화하여 출력 값들의 총합이 항상 1이 되도록 함
from tensorflow.keras import layers
model = tf.keras.Sequential()
# 유닛 64개를 가진 완전 연결층
model.add(layers.Dense(64, activation='relu')
model.add(layers.Dense(64, activation='relu')
# 출력 유닛 10개, 소프트맥스 함수 사용
model.add(layers.Dense(10, activation='relu')
: 오차를 구하는 함수. 추정치가 실제 데이터와 얼마나 차이가 나는지 평가하는 지표.
평균 제곱 오차(MSE)
: 실제값과 예측값의 차이의 제곱의 평균
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1), loss='mse')
크로스 엔트로피 오차(Cross-entropy)
: 분류 문제에서 원-핫 인코딩을 했을 때만 사용할 수 있는 오차 계산법
model.compile(optimizer=tf.keras.optimizers.Adam(0.001), loss='categorical_crossentropy', metrics=['accuracy'])
: 네트워크에 훈련 데이터가 들어올 때 발생
: 손실이 계산되면 정보는 역으로 전파됨(출력층 -> 은닉층 -> 입력층)
딥러닝은 여러 은닉층을 결합하여 비선형 영역을 표현하여 데이터 분류가 잘 됨
# drop_rate = 0.3: 0.7에 해당하는 노드들만 남겨두고 다 지워버림
tf.keras.layers.Dropout(0.3)
기울기 소멸 문제: 출력층에서 은닉층으로 전달되는 오차가 크게 줄어 학습이 되지 않는 현상
성능 감소 문제: 경사하강법에서 손실함수의 비용이 최소가 되는 지점을 찾기 위해 기울기가 낮은 쪽으로 계속 이동시키는 과정을 반복하면서 생기는 문제
# 확률적 경사 하강법
model.fit(X_train, y_train, batch_size = 1)
# 미니 배치 경사 하강법
model.fit(X_train, y_train, batch_size = 12)
모멘텀으로 절반 정도 이동한 후 어떤 방식으로 이동해야 하는지 다시 계산하여 결정
빠른 이동 속도는 그대로 가져가면서 멈추어야 할 적절한 시점에 제동을 거는 데 훨씬 용이
이전에 학습했던 속도와 현재 기울기에서 이전 속도를 뺀 변화량을 반영하여 가중치 구함
: 데이터 별로 어떤 특징을 가지고 있는지 찾아내고, 이를 토대로 데이터를 벡터로 변환하는 작업
: 데이터 사례가 많을수록 특징 추출의 성능 향상
: 입력층과 출력층 사이에 다수의 은닉층을 포함하는 인공 신경망
: 합성곱층(Convolutional layer)과 풀링층(Pooling layer)을 포함하는 인공 신경망
: 시계열 데이터(음악, 영상 등) 같은 시간 흐름에 따라 변화하는 데이터를 학습하기 위한 인공 신경망
: 가시층과 은닉층으로 구성되고, 가시층이 은닉층과만 연결된 모델
: 입력층과 은닉층으로 구성된 제한된 볼츠만 머신을 블록처럼 여러 층으로 쌓은 형태로 연결된 신경망
Step 1: 가시층과 은닉층 1의 제한된 볼츠만 머신 사전 훈련
Step 2: 첫 번째 층 입력 데이터와 파라미터 고정, 두 번째 층 제한된 볼츠만 머신 사전 훈련
Step 3: 원하는 층 개수만큼 제한된 볼츠만 머신 쌓아올려 전체 DBM 완성