Perceptron
https://heytech.tistory.com/332
퍼셉트론(Perceptron)은 인공 신경망(Aritificial Neural Network, ANN)의 구성 요소(unit)로서 다수의 값을 입력받아 하나의 값으로 출력하는 알고리즘입니다. Perceptron은 perception과 neuron의 합성어이며 인공 뉴런이라고도 부릅니다. 즉, 퍼셉트론은 생물학적인 신경계(Neual Network)의 기본 단위인 신경세포(=뉴런)의 동작 과정을 통계학적으로 모델링한 알고리즘입니다.
ML, DL 사용 이유? 데이터 예측을 잘하기 위해서
이를 위해서 Neural Network 구조로 여러 뉴론을 합쳐서 만듦
아래와 같은 2차원에서 동그라미와 플러스를 구분하기 위해 직관적으로 아래와 같이 선을 그어 판단할 수 있다
가장 간단한 2차원 선형분류(Linear classifier)를 만든것
X1 접점 1, X2 접점 2일때 아래와 같은 수식을 얻을 수 있다
2 * X1 + X2 - 2 = 0
또한 이를 Perceptron 으로 나타내면 아래와 같다
입력(feature)값 X1 과 입력(feature)값 X2가 하나의 뉴런으로 들어옴
이때 가중치(weight)값 2와 1을 표현하고 마지막 편향(bias)값 -2를 적어주면 위 수식과 같은 의미를 가진다
https://machine-learning.paperspace.com/wiki/weights-and-biases
예시로 X = (2, 2) 의 벡터값이 들어온다면 4의 값을 확인할 수 있으며, 4(예측값) > 0 로 이는 동그라미로 예측할 수 있다
(2 * 2) + 2 - 2 = 4
반대로 X = (-1, -1) 의 벡터값이 들어온다면 -5의 값을 확인할 수 있으며, -5(예측값) < 0 로 이는 별표로 예측할 수 있다
(2 * -1) - 1 - 2 = -5
그럼 빨간 선의 기준은 어떻게 선정하는것인가?
머신러닝 어프로치(Machine learning approach)를 적용하여 도출한다
데이터가 주어졌을때 규칙을 발견하는것
데이터의 분포를 보고 어떤 방식으로 Classifier를 만들지 찾는것
즉 위 Perceptron에서 각 입력(feature)값 별 가중치(weight)와 편향(bias)값을 찾아가는 과정
그러나 만약 직선으로 구분할 수 있는 것이 아닌 아래와 같은 데이터가 주어지면
인간은 직관적으로 원을 그어 판단할 수 있지만 위와 같은 선형분류로 구분하는 것은 불가능 하다
단순 선형분류로 아래와 같이 레이어를 엮고 섞고 조합을 해도 2차원에 선밖에 그릴 수 없다
답은 각각의 뉴런에 Non linear 한 특성(activation)을 넣어주면 된다
활성함수(activation function)으로 불리며 뉴런이 꺼졌다 켜졌다를 판단할 특성을 넣어주는 것
각 셀에 들어오는 입력을 X축, 출력을 Y축 이라 가정한 그래프가 아래와 같이 그려진다
중요한 것은 함수가 꺼져있는 상태와 켜져있는 상태를 구분할 수 있어야한다
이는 Backpropagation을 위해 함수들은 미분가능하다는 것을 의미한다
https://junstar92.tistory.com/122
https://playground.tensorflow.org
위 사이트에서 위 내용을 시각화하여 확인할 수 있다
선형분류로는 아무리 오랜시간 학습시켜도 직선만으로 분류하기 때문에 분류할 수 없다
하지만 각각의 뉴런들에 activation function을 적용시킨다면 적은 레이어 뉴런만으로도 분류가 가능하다
정리
주어진 데이터를 구분하는 학습기를 위해 Neural network 구조를 사용하고
복잡한 데이터들을 구분하기위해 각 뉴런들은 Activation function을 통해 Non Linear한 특성을 가지게 만든다
뉴럴 네트워크로 학습하는 과정이란 각 뉴런에 들어오는 input에 대한 weight값을 찾아가는 단계이다
이 과정에서 중간 히든 레이어가 많아져 깊어진다면 이를 Deep Neural Network로 부른다
'ML | DL' 카테고리의 다른 글
2. Loss function, Optimization (0) | 2023.08.09 |
---|