21년 6월 8일 

코드스테이츠 부트캠프 #일차

S4-Week 1 : Neural Networks

Note 01 : Neural Network (NN) Foundation

 

 

키워드

  • 신경망과 퍼셉트론의 개념 학습 - 구조, 입출력, 학습

목표

  • 퍼셉트론(Perceptron)을 이해하고 python으로 구현할 수 있다.
  • 신경망(Neural network)의 원리를 이해하고 기본적인 구조를 예를 들어 신경망을 설명할 수 있다.
  • 신경망이 학습된다는 개념을 이해한다

*정리할 겸 자문자답*

1. 퍼셉트론이란 무엇인가?

2. 신경망이란? 

 

'원'으로 표현된 것을 노드(node) or 뉴런이라고 한다.

각 노드 사이에 있는 화살표를 가중치(weights)라고 한다

각 노드에서 연산값이 정해진 임계값(TLU; Threshold Logic Unit)을 넘을 경우에만 다음 노드들이 있는 층(layer)로 신호를 전달한다.

 

인공신경망의 목표는 데이터에서 발견할 수 있는 복잡한 관계를 학습할 수 있는 강력한 알고리즘과 데이터 구조를 만드는 것 입니다.

 


입력층(Input Layers)

입력층은 데이터셋으로부터 입력을 받습니다. 입력 변수의 수와 입력 노드의 수는 같습니다. 보통 입력층은 어떤 계산도 수행하지 않고 그냥 값들을 전달하기만 하는 특징을 가지고 있습니다. 그래서 신경망의 층수(깊이, depth)를 셀 때 입력층은 포함하지 않습니다. 위의 신경망은 2층이라고 할 수 있습니다.

 

은닉층(Hidden Layers)

계산이 일어나는 층이 둘 이상인 신경망을 다층(multilayer) 신경망 이라고 부르는데 계산이 없는 입력층과 마지막 출력층 사이에 있는 층들을 은닉층(Hidden Layers) 이라고 부릅니다. 은닉층에 있는 계산의 결과를 사용자가 볼 수 없기(hidden) 때문에 이런 이름이 붙었습니다. 딥러닝(deep learning)은 사실 두 개 이상의 (이때 부터 깊다(deep)라고 합니다) 은닉층들을 가진 신경망, 입력층을 제외하고 시작하여 3개 이상의 Layer를 갖는 신경망을 의미합니다.

은닉층의 개수를 늘리고 그 연결과 학습 방법을 달리하여 더 복잡한 데이터의 구조를 학습하여 이전 성능 기록들을 갱신하게 되면서 딥러닝이 유명하게 되었습니다. 은닉층에는 변수 수와 상관 없이 다수의 노드가 포함 가능합니다.

 

출력층(Output Layers)

신경만 가장 오른쪽 마지막 층이 출력층 입니다. 출력층에는 대부분 활성함수(activation function)가 존재하는데 활성화함수는 풀고자 하는 문제에 따라 다른 종류를 사용합니다.

  • 회귀 문제에서 예측할 목표 변수가 실수값인 경우 활성화함수가 필요하지 않으며 출력노드의 수는 출력변수의 갯수와 같습니다.
  • 이진 분류(binary classification) 문제의 경우 시그모이드(sigmoid) 함수를 사용해서 출력을 확률 값으로 변환하여 부류(label)를 결정하도록 합니다.
  • 다중클래스(multi-class)를 분류하는 경우 출력층 노드가 부류 수 만큼 존재하며 소프트맥스(softmax) 함수를 활성화 함수로 사용합니다.

 

순방향 신경망(feedforward NN)을 학습할 때 손실 함수(Loss function)를 통해 예측값과 실제값의 차이를 평가하고 경사 하강법(Gradient Descent)을 통해 최적의 가중치, bias를 찾는 개념

https://blog.lgcns.com/1359

퍼셉트론(Perceptron)

다수의 입력값을 가질 수 있고 하나의 출력값을 내보냅니다.

하나의 뉴런이 하는 일은 들어온 입력값들을 단순히 가중치를 곱해 모두 더하는 연산(선형결합)을 하고 활성화함수(activation function)에 넣어 그 결과를 출력합니다.

 

퍼셉트론 구조

퍼셉트론은 입력값과 편향 값에 가중치(weight)를 곱하여 합한 값 즉, '가중치 곱의 합'이 임계치(threshold)를 넘어가면 1, 그렇지 않으면 0을 출력하는 활성화 함수(activation function)를 가집니다. 여기서 주목해야 할 점은 출력 값이 0 또는 1로 둘 중 하나라는 것입니다.

 

 

 

 

 

 

+ Recent posts