개발/머신러닝

파이썬 머신러닝 - Neural Networks

웅'jk 2022. 12. 27. 16:16

그동안 배운 머신러닝들을 이용하다보면 실제 상황에서는 적용하기가 힘들고 머신러닝의 정확도가 떨어져

사용하기 어려움에 있었습니다.

 

이러한 문제를 해결하고자 많은 사람들이 연구한 결과물 중에서 사람의 뉴런을 참고하여 만든 방식인 

뉴럴 네트워크에 대해 알아봅시다.

 

(좌)Neural Newroks 구조 (우)ANN(Article Neural Networks)

뉴럴네트워크 , 번역하자면 신경망 구조 입니다. 

 

위 사진에서 input 은 데이터를 의미합니다. 여러분들이 머신러닝을 진행할때 X 값을 정하고 train 과 test로 나눈 데이터들을 저 input에 넣어 진행하도록 합니다.

 

hidden 부분은 계층(layer)가 모여있는 구간입니다.

여기서 layer란? 오른쪽 사진 어떠한 입력치와 가중치를 통해 구한 합을 액티베이션 함수를 통해 나타낸 ANN(Article Neural Networks)들의 모임 입니다.

 

ANN 은 데이터의 값 a,b,c 등등의 값들에 가중치 w 를 랜덤하게 각각 부여하여 그 값들의 합을 엑티베이션 함수를 통해 출력하는 방법입니다.

위 사진처럼 계층1 , 계층 2 마다 각각의 ANN 들이 있어 서로 다른 가중치를 가지고 입력받은 결과물에 따라서 합이 바뀌게 되고 액티베이션 함수에 적용하여 서로다른 값들을 가지고 출력하게 됩니다.

 

이 출력한 값들을 다양한 옵티마이저를 통해 새로운 오차가 가장 적은 가중치값을 구하게 되어 결과값을 예측하게 됩니다.

 

 

액티베이션 함수의 대표적

액티베이션 함수에는 대표적으로는 시그모이드, 리루가 존재합니다.

 

다만 시그모이드 방법은 오차를 구하기 위해 사용되는 방법 중 하나인 Gradient Desent 방식에서는 오차의 최소값을 구하지 않았음에도 나오는 경우가 있어 hidden layer 에서는 사용하지 않으며 마지막 output layer에서는 사용이 가능합니다.

 

다음 포스팅에서는 relu 방식을 이용하여 텐서플로우를 통해 머신러닝을 만들어보도록 하겠습니다.