딥러닝 정리

0woong·2022년 1월 24일
0

Deeplearning

목록 보기
1/1
post-thumbnail

Tensorflow 기반의 딥러닝 모델 구축

인공신경망 - 완벽한 수학식으로 구현(신경세포, 뉴런 -> 구현한것: 퍼셉트론)

인공 신경망은 뇌 신경계의 정보 처리 구조를 따라해서 만든 알고리즘이다. 뇌 신경은 수많은 신경세포(뉴런)들이 연결되어 정보를 처리하고 전달한다. 신경세포는 신호를 입력을 받은 다음 신경세포에 출력 형태로 연결한다는 점에서 입출력을 갖는 함수와 유사하다. 인공 신경망은 이처럼 수많은 뇌 신경계와 같이 신경세포가 연결되는 수많은 함수를 서로 연결하여 복잡한 정보를 처리하는 네트워크 구조로 이해할 수 있다.

신경세포(뉴런)—--(신호전달)-----> 신경세포(뉴런)

여러개의 가중치(식)를 계산(예, 2개의 가중치(식)라고 해보자.)
1. ax1 + bx2 + cx3 => 손실(정답과의 오차)이 크고, 정확도가 낮음. => 다음 계산시 버림
2. a2x1 + b2x2 + c2x3 => 손실(정답과의 오차)이 작고, 정확도가 높음. => 다음 계산시 사용

활성화함수

위 그림을 보면 인공 신경망은 입력값을 가중치와 곱하고 그 결과를 전부 더한다. 이렇게 가중 합산한 값을 활성화(activation) 함수에 입력하여 최종 출력으로 변환한다. 즉, 입력값들의 수학적 선형 결합을 다양한 형태의 선형, 비선형 결합으로 변환하는 역할을 한다.

시그모이드함수

일반적으로 출력이 0.5보다 작으면 0으로, 크면 1로 분류한다.

활성화함수의 종류

손실함수의 종류

손실 함수는 인공 신경망이 출력하는 값과 실제 정답과의 차이를 말한다. 따라서 손실 함수가 작을수록 좋다. 딥러닝 학습을 통해 인공 신경망의 출력값과 실제값을 비교하여 그 차이를 최소화하는 가중치(W)와 편향의 조합을 찾는다.

  • 대부분의 문제에 잘 맞는 손실함수가 이미 정의되어있음.

옵티마이저(최적화 알고리즘) : 손실함수를 최소화하는 인공신경망의 가중치와 편향을 찾는 과정(미분값이 0이 될 때까지!)

딥러닝 학습은 손실 함수를 최소화하는 인공신경망의 가중치와 편향을 찾는 과정이라고 정의한 바 있다. 손실 함수는 일반적으로 J(W)와 같이 가중치(W)의 함수로 나타낸다. 손실 함수 J(W)가 2차 함수와 같이 볼록 함수의 형태라면 미분으로 손실이 가장 작은 가중치(W*)를 찾을 수 있다.

경사하강법

딥러닝에서는 손실 함수의 형태가 복잡하므로 계산량이 매우 커지고, 미분이 0이 되는 값이 여러 개 존재하게 되므로 미분만으로 0에 가까운 최소값을 찾기 어렵다. 그래서 보통 경사하강법(Gradient Desent Method)과 같은 최적화 방법을 이용한다. 경사하강법은 손실 함수의 현재 위치에서 조금씩 손실이 낮아지는 쪽으로 가중치를 이동하면서 최소값을 찾는 방법이다.

손실 함수를 최소화하는 방향으로 가중치를 갱신하는 알고리즘을 옵티마이저(Optimizer)라고 부른다. 경사하강법에 기반을 둔 옵티마이저로는 SGD, RMSProp, Adagrad, Adam 등이 있다.

신경망의 학습과정

다층 신경망(MLP)

인공 신경망은 일반적으로 여러 층의 레이어를 여러겹 쌓아서 만든다. 입력 레이어와 출력 레이어가 신경망의 앞과 뒤에 위치하고, 그 사이에 여러 층의 히든 레이어를 배치한다. 각 레이어는 여러 개의 유닛으로 구성되고, 각 유닛은 하나의 퍼셉트론으로 이루어진다. 각 유닛은 입력값과 가중치를 갖고 활성화 함수를 거쳐 출력을 내보낸다. 인접한 두 레이어의 각 유닛은 서로 가중치(W)를 갖는 연결선을 통해 이어지고 일대일 대응 관계를 갖는다. 이처럼 복잡한 아키텍처를 사용하여 데이터에 내재된 복잡한 관계를 파악할 수 있다.

profile
개발 2년차 코린이

0개의 댓글