Hayden's Archive

[AI/딥러닝] Neural Network / Activation Function / Feature Map / Fully Connected Network의 문제점 본문

Study/AI & Math

[AI/딥러닝] Neural Network / Activation Function / Feature Map / Fully Connected Network의 문제점

_hayden 2020. 7. 29. 14:02

뉴럴 네트워크 Neural Network
인간의 신경세포를 본떠서 만듦. 수상돌기로부터 정보(x값) 입력받아서 축을 통해서 연결되고 결과(y값)을 다시 입력값으로 넘김 

특정한 값 이상만 받아들이고 그 밑의 값은 무시 -> 활성함수.

각각의 신념 체계에 따른 다른 가중치 부여 -> Weight
뉴런 세포에 들어오는 값에 대한 공통적인 의견 -> Bias
역치값 이상이 되면 출력값으로 연결, 자극을 인지할 수 없는 값이 들어오면 출력값으로 연결X -> 활성화함수

Sigmoid Activation Function => 선형을 비선형으로 만들 수 있는 tip이 됨. 선형적인 질서가 무너지게 됨. 

 



인공신경망은 생물학적 신경망을 본떠서 만들어짐. 

여러 자극이 들어왔을 때 수상돌기를 통해서 자극들이 신경 세포로 들어오고(Input), 어느 정도 이상의 자극만 받아들이고 나머지는 무시하는 구조.

들어온 자극들에 각각의 서로 다른 중요도를 곱하고(Functions 1) 보편적인 값을 더해서 해석하고(Functions 2) 그걸 통과시켜서 다른 세포로 연결할 준비를 하는데, 이 때 선형적인 구조를 어그러뜨리는 Activation을 하나 만들어서 준비함(Functions 3). 선형을 비선형으로 만든다는 건 값을 더 풍부하고 상상할 수 없는 다른 관점의 값으로 만든다. 역치값 이상이 되면 출력값으로 연결하고 축삭돌기를 통해 내보냄(Output). 이 때의 출력값을 다른 수상돌기에서 받아들이면 출력값이 입력값이 됨.

 


활성화 함수 Activation Function 

딥러닝에서 사용하는 활성화 함수를 다 모아놓은 것.


시그모이드 함수 - Sigmoid Function(값의 범위 0~1)
하이퍼블릭 탄젠트 함수 - Hyperbolic Tangent Function (값의 범위 -1~1) - 시그모이드를 아래위로 늘렸다고 보면 됨.
ReLU 함수 - ReLU Function (값의 범위 0~x) - 0보다 작은 값이 들어오면 0으로 수렴하고, 0 이상의 값은 발산함.

=> 딥러닝에서 자주 사용하는 활성화함수ReLU를 씀. 처음에는 시그모이드를 썼는데 인공신경망 작업을 할 때는 ReLU가 훨씬 좋음. CNN에서 사용.

 


Feature Map(=Hidden Layer)

입력과 출력 사이에 있는 게 Hidden Layer(=Feature Map)
입력은 3072개였는데 출력은 100개임.

특징 추출을 필요한 것만 압축(정보 축소, 정보 손실)해서 시각화한 이미지값. 

그래서 Hidden Layer를 Feature Map이라고도 하고, 해상도가 떨어지게 됨.

 


점점 갈수록 사람의 눈으로 분석하기 힘든 것을 확인할 수 있음

 

보통 딥러닝에서 입력의 대상은 이미지가 된다. 이미지를 펼쳐서(3차원->1차원) 넣어야 함. input size픽셀의 개수가 되고, 입력의 대상이 됨. 
이미지를 필터로 잡아내서 통과시키는 네트워크는 CNN


Fully Connected Network의 치명적인 문제점 : Fully Connected Network에서 이미지를 펼치다 보면 이미지의 공간 정보를 잃게 됨. 

공간 정보를 잃지 않고 모든 정보를 Raw하게 입력하려면 이미지를 그대로 넣으면 됨.
이미지를 그대로 입력하거나 용량이 많으면 쪼개서 입력하거나 이미지를 펼치지 않고 통으로 입력하는 것 ==> CNN