Search
🕌

딥러닝(Tensorflow)

주요 개념
목차
Perceptron Hidden layer MLP Back propagation Feedforward Neural Network Activation Function Loss Function

인공신경망의 학습

인공신경망의 학습 과정
① 환경변수 지정
망 구성
신경망의 성능은 뉴런의 연결 구조 및 연산 방법에 따라 차이가 발생
망 형태의 3가지 특성
층(layer) 의 개수
망에서 정보가 뒷단(backward)으로 전파될 수 있는지
망의 각 층 내에 있는 노드 개수
일반적으로 한 층의 모든 노드가 다음 층의 모든 노드와 완전 연결 됨
토폴로지는 망이 학습해야 할 태스크의 복잡성에 좌우됨
층의 개수
층의 개수와 정보 진행 방향과 더불어, 각 층의 노드 개수에 따라 복잡성이 다양해짐
입력 노드의 수는 입력 데이터의 속성 개수로 결정
출력 노드의 수는 결과의 분류 개수나 모델의 결과 수로 결정
모델을 시작하기 전 은닉층의 노드 개수를 결정하지만, 적당한 은닉층의 노드 개수를 결정하는 규칙은 없음
하이퍼파라미터(Hyper Parameter)
신경망의 학습에 의해서 자동으로 획득되지 않고, 사람이 직접 설정해야 하는 값
에폭(Epoch)
딥러닝을 수행하면서 학습데이터가 모두 소진되는 하나의 단위
1 epoch은 전체 데이터 셋에 대해 한 번 학습을 완료
예)10,000개를 100개의 batch_size로 학습할 때, 100회가 1epoch
모든 데이터 셋에 대해 역전파(backpropagation)을 수행함
적절한 epoch 설정으로 underfitting과 overfitting 방지
배치사이즈 (Batch size)
한 번의 batch(mini-batch)마다 주는 데이터의 sample size
batch size와 성능 간의 상관관계는 없으나 메모리 한계와 속도 저하 때문에 한번의 epoch에서 모든 데이터 학습 불가능
신경망 실행
활성화함수(Activation Function)
입력 신호의 총합을 그대로 사용하지 않고, 입력 신호의 총합이 활성화를 일으키는지 아닌지를 정하는 역할로, 입력 신호를 규칙에 따라 출력 신호로 변환하는 함수
sigmoid, tanh, relu, softmax
예측값과 실제값 비교
손실 함수(Loss Function)
비용함수(Cost Function)
가중치에 따라 실제값과 예측값의 오차가 어느 정도인지를 평가
신경망 성능의 “나쁨”을 나타내는 지표
현재의 신경망이 훈련 데이터를 얼마나 잘 처리하지 못하느냐를 나타내는 지표
손실함수 값을 작게 하는 매개변수(가중치와 편향)를 찾는 과정이 인공신경망의 학습
미분 : 매개변수 값을 아주 조금 변경했을 때 손실 함수가 어떻게 변하나
경사하강법(Gradient descent algorithm)을 이용하여 loss 최소화
④ 가중치 수정
학습률(Learning Rate)
경사하강법에서 손실함수의 최소값의 위치를 찾기 위한 이동하는 거리의 비율
경사하강법은 오차의 변화에 따라 이차 함수 그래프를 만들고, 적절한 학습률을 설정해 미분 값이 0인 지점을 구함
학습률을 너무 크게 설정한 경우
손실함수의 최소값을 찾지 못하고 값이 발산(explode)하거나 소실(vanish)하는 문제 발생
local minimum에 빠지는 문제 발생
학습률을 너무 작게 설정한 경우
학습시간이 오래 소요되고, 최소값에 미쳐 도달하지 못한 상태에서 학습이 종료
옵티마이저(Optimizer)
손실함수의 최소값을 찾기 위한 다양한 경사하강법(Gradient Descent Algorithm)
SGD, momentum, adagrad, adam

신경망 설계

[exercise] neural_network_basic_exercise

신경망 구현

TensorFlow를 사용하면 어떤 환경에서도 실행할 수 있는 ML 모델을 쉽게 만들 수 있습니다.

모델

레이어