오구의코딩모험

[ML/DL] 인공신경망(Artificial Neural Network), 활성화 함수(Activation Function) 본문

AI/ML,DL

[ML/DL] 인공신경망(Artificial Neural Network), 활성화 함수(Activation Function)

오구.cpp 2022. 12. 14. 21:37
반응형

 

 

 

 

딥 러닝(Deep Learning)머신 러닝(Machine Learning)의 특정한 한 분야로서

인공 신경망(Artificial Neural Network)의 층을 연속적으로 깊게 쌓아올려 데이터를 학습하는 방식이다.

 

 

인공 신경망이 뭔데?

 

초기의 인공 신경망인

퍼셉트론를 예시로 천천히 알아보자

 


퍼셉트론(Perceptron)

https://wikidocs.net/24958

[좌측 그림]

실제 뇌를 구성하는 뉴런의 동작은

신호를 받고 이 신호가 일정치 이상의 크기가 되면

신호를 전달해주는 구조라고 한다.

 

[우측 그림]

x는 입력값(Input), w는 가중치(Weight), y는 출력값(Output)

퍼셉트론은 뉴런과 유사하게

가중치의 곱의 전체 합임계치(threshold)를 넘으면y에 1을 출력, 그렇지 않으면 0을 출력한다.

 

위의 구조는

값을 보내는 단계와 받아서 출력하는 두 단계로 이루어지는

단층 퍼셉트론(Single-Layer Perceptron)이다.

ex) 입력 → 출력

 

 

AND와 OR은 단층 퍼셉트론으로 구현할 수 있지만,

XOR과 같은 구조를 구현하기 위해서는 단층 퍼셉트론으로는

불가능하다.

 

이런 경우에는

단층 퍼셉트론을 조합하여

다층 퍼셉트론(MultiLayer Perceptron, MLP)을 구현한다.

 


다층 퍼셉트론(MultiLayer Perceptron, MLP)

https://wikidocs.net/24958

[좌측 그림]

다층 퍼셉트론은 단층 퍼셉트론과 다르게

입력층과 출력층 사이에 은닉층(Hidden Layer)이 존재한다.

 

[우측 그림]

복잡한 문제를 해결하기 위해 수많은 은닉층을 추가할 수 있으며,

은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Network, DNN) 라고 한다.

 

퍼셉트론이 제대로 된 정답을 출력할 때까지 직접 가중치를 바꿔보면서 적절한 가중치를 수동으로 찾는다.

하지만 기계가 가중치를 스스로 찾아내도록 자동화시켜야하는데,

이것이 머신 러닝에서 말하는 훈련(training) 또는 학습(learning) 단계이다.

 

만약 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 

딥 러닝(Deep Learning)이라고 한다!

 

우린 앞서 공부한 선형 회귀에서 손실 함수(Loss function) 옵티마이저(Optimizer)를 사용했다.

 

그렇다면

선형 회귀(Linear Regression)을 연속적으로 쌓으면 딥 러닝일까?

 


활성화 함수(Activation Function)

https://www.youtube.com/watch?v=2726YGYuRvU

 

 

결론은 아니다!

 

선형 회귀를 연속적으로 쌓기만 한다면,

아무리 깊게 쌓아도 다시 선형 회귀로 표현된다. [f(ax+by)=af(x) + bf(y)의 성질]

즉, Single Layer NN로 표현이 가능

 

 

 

https://www.youtube.com/watch?v=rpHuwa-dbbI

 

그렇기 때문에

입력 값에 대한 출력 값이 non-linear하게 해주는

활성화 함수(Activation Function)가 필요하다!

 

위와 같은 데이터 분산은

non-linear하게 만들어주는 것이

예측을 더 잘한다는게 보인다.

 

 

 

https://ganghee-lee.tistory.com/30

활성화 함수 종류에는

위의 사진과 같이 여러 함수가 존재하는데,

자세한 건 다음 포스팅에서 알아보도록 하겠다!

 

 

 

 

참고자료

[딥러닝] 2-2강. 활성화 함수

딥 러닝을 이용한 자연어 처리 입문

ㄹㅇ 쉬운 딥러닝 4강

https://ganghee-lee.tistory.com/30

반응형
Comments