코딩세상
[딥러닝 기초] 1장 퍼셉트론 - 퍼셉트론(Perceptron) 본문
- 신경망 이전의 연구
신경망 이전의 연구는 주로 얼굴인식, 숫자 및 문자 인식이 이루어 졌습니다.
- 명시적 프로그래밍(Explicit Programming)
명시적 프로그래밍을 통해 얼굴 인식, 숫자 및 문자 인식을 할 수 있는 프로그램을 프로그래밍 하였습니다.
위 이미지처럼 if 문을 통해 눈, 코, 입 혹은 숫자 1, 2, 3 .... 과 같이 룰을 지정하여 분류 할 수 있게 프로그래밍 하였습니다.
- 명시적 프로그래밍의 한계 예시 : 자율 주행 자동차
자율 주행 시 예측할 수 없는 상황이 일어날 수 있기 때문에 명시적 프로그래밍을 통해 입력해주는 것은 한계가 있습니다. 일일이 발생할 수 있는 예측을 가정하여 적게는 수천, 많게는 수십만개의 경우의 수를 사람이 직접 입력해주는데에는 한계가 있었고, 이를 통해 직접 사람이 일일이 기계에 입력을 하고 가르치지 않아도 기계가 스스로 사람처럼 학습할 수 있는 기술의 필요성을 느끼게 되었습니다.
- 1958년 초기 신경망 퍼셉트론의 등장
따라서 명시적 프로그래밍이 아닌 NN(Neural Net)이 직접 학습하고 동작할 수 있게 만든 모델이 등장하게 된 계기가 앞서 딥러닝 개론에서 설명했던 퍼셉트론(Perceptron)이 모티베이션이 되었습니다.
- 초기 형태의 신경망, 퍼셉트론
초기 신경망 모델은 오른쪽 사진과 같이 이루어져 있었으며, feature와 가중치가 들어왔을 때 각각의 feature에 가중치 w를 곱해서 각각의 값을 더한 후 활성화 함수(Activatioin Function)를 통해 결과가 나오는 것입니다.
- 퍼셉트론의 기본 구조
퍼셉트론의 기본 구조는 위 사진과 같이 이루어져 있습니다. 동작하는 과정은 위에서 설명 했던 것과 같이 동작하게 되며 각각의 값에 대한 명칭은 오른쪽 표를 통해 정리하였습니다.
- 활성화 함수(Activation Function)
활성화 함수가 필요한 이유는 여러가지를 들 수 있습니다. 노이즈를 제거하거나, 분류를 더 잘하게 하거나, 가중치를 학습하기 위해서 최적의 가중치를 탐색하여 배우는 등이 있습니다.
이러한 활성화 함수는 현재에 들어 Sigmoid Function, ReLU Function 등 다양한 함수가 존재하지만 Sigmoid 함수의 경우 앞에 딥러닝 개론에서 설명 했던 것처럼 학습이 제대로 되지 않거나 학습 시 0과 1로 수렴 할 때 오류가 발생할 수 있으므로 해당 단점이 개선된 ReLU 함수를 사용하고 있습니다.
- 퍼셉트론 동작 예시
- 퍼셉트론 코드 예시
위 코드는 퍼셉트론 동작 예시의 내용을 직접 코드로 구현한 내용이며, feature 값인 x, 가중치인 weights를 입력하였을 때 각각에 해당하는 feature와 weights를 곱하여 모두 더하고 이 값이 0 이상인 수인지 음수인지를 판별하여 1과 0의 값을 리턴하는 간단한 코드입니다.
# 출처
엘리스 AI 트랙 [강의자료] 퍼셉트론
'인공지능' 카테고리의 다른 글
[딥러닝 기초] 2장 텐서플로우와 딥러닝 학습 방법 - 딥러닝 모델의 학습 방법 (0) | 2023.08.30 |
---|---|
[딥러닝 기초] 1장 퍼셉트론 - 다층 퍼셉트론 (0) | 2023.08.28 |
[딥러닝 기초] 1장 퍼셉트론 - 비 선형적인 문제 (0) | 2023.08.25 |
[딥러닝 기초] 1장 퍼셉트론 - 퍼셉트론 선형 분류기 (3) | 2023.08.23 |
[딥러닝 기초] 1장 퍼셉트론 - 딥러닝 개론 (2) | 2023.08.20 |