본문 바로가기
computer vision/dna_study

딥러닝 인공신경망

by dohunNewte 2023. 3. 3.
반응형

인공신경망

인공신경망은 사람들의 뇌에있는 뉴런을 수학적으로 모델링을 한것인데 사람들의 뉴런이 자극을받으면 그것에대한 정보가 세포체에 저장되다가 자신의 수용용량을 넘어서면 외부로 출력값을 내보내는것처럼 인공신경망은 여러 입력값을 받아서 일정 수준이 넘어서면 활성화가되어 출력값을 내보낸다. 

 

 

손실 함수의 값을 최소화하는 매개변수(가중치=w)를 찾는것이 신경망의 학습이다.

 

Backpropagation은 인공신경망을 학습시키기 위한 일반적인 알고리즘 중 하나이다. 한국말로 직역하면 역전파라는 뜻인데, 내가 뽑고자 하는 target값과 실제 모델이 계산한 output이 얼마나 차이가 나는지 구한 후 그 오차값을 다시 뒤로 전파해가면서 각 노드가 가지고 있는 변수들을 갱신하는 알고리즘인 것이다.

시그모이드 함수의 출력은 0보다 크고 1보다 작은 임의의 값이다 그리고 0과 1로 강제 출력하는 부분에서는 학습이 잘 이루어지지 않는다. 이를 기울기 소실(vanishing gradient) 문제라고 한다.

Vanishing Gradient: input값이 일정 이상 올라가면 미분한 값이 거의 0에 수렴하게 된다. 이는 역전파되는 과정에서 출력값이 현저하게 감소되는 결과를 낳는다(0에 가까운 값끼리 곱하면 0에 계속 가까워지기 때문에).

 

활성화 함수로는 Relu 함수를 많이사용한다.(거의모든 딥러닝에서 사용)

리루함수를 쓰는이유

뉴런의 활성화값이 0인 경우, 다음 레이어로 연결되는 가중치를 곱하더라도 결과값은 0을 나타내게되서 연상량을 줄여준다.

기울기소실문제를 아주약간 해결해준다. Relu의 역함수는 1이므로 Relu함수의 경우에는 gradient로 상수를 갖게된다.

일정한 gradient값은 빠르게 학습하는 것을 도와준다!

 

처음 들어오는 데이터(입력층)에서 다음 노드로 넘어갈때 모두 같은값이면 계속 같은 값이 나올것 입니다. 각기 다르게 곱해야 한다는것이 바로 가중치(weight)입니다. 데이터를 각기 다른 비중으로 다음 은닉층(hidden layers)으로 전달시키기 위해 웨이트(weight), 중요도를 다르게 한다고 이해하시면 됩니다.

 

가충치초기화가 Batch Normalization인데 

  1. Overfitting을 방지합니다.
  2. weight을 작게 유지합니다. 이는 gradient exploding을 방지합니다.

weight을 작게 유지하면 가중치가 엄청 커지며 exploding되는 것을 방지하기 때문입니다.

Drop-out 기법을 사용하는 이유

1.Drop-out은 간단하지만 아주 강력한 정규화(regularization) 방법입니다. 

2.Drop-out은 어떤 특정한 설명변수 Feature만을 과도하게 집중하여 학습함으로써 발생할 수 있는 과대적합(Overfitting)을 방지하기 위해 사용됩니다.

 

앙상블 : 여러 모델을 종합적으로 교려해서 최적의 결과를 찾아내는것(다수결 or 평균으로)

 

Dropout은, 비록 모델은 여러 개를 만들지 못하지만 훈련 과정에서 앙상블의 효과를 내게 됩니다. 같은 변수들을 공유하는 하나의 모델만을 사용한다는 점이 일반적인 앙상블 모델과 다른 점입니다.

하나의 인공신경망에서 앙상블을 실현시키기 위해서, 훈련 단계에서 dropout 은 강제로 특정 퍼셉트론을 없애버립니다. 그 과정에서 그 퍼셉트론에 연결된 가중치들도 의미없는 값이 됩니다.

매번 미니 배치가 들어올 때마다 무작위로 다른 퍼셉트론들을 끊어냅니다.

이 과정에서 약간씩 다른, 엄청 다양한 구조가 학습된다고 생각할 수 있습니다. 이로인해 앙상블효과가 나타나게 할 수 있습니다

728x90

'computer vision > dna_study' 카테고리의 다른 글

kaggle Tutorial Intel Image Classfication(캐글)  (1) 2023.03.15
CV(Computer Vision) 전이학습(Transfer Learning)  (0) 2023.03.03
이미지넷 챌린지  (0) 2023.03.03
Neural Network CNN  (0) 2023.03.03
머신러닝과 딥러닝  (1) 2023.03.01

댓글