코딩세상
[딥러닝 기초] 1장 퍼셉트론 - 퍼셉트론 선형 분류기 본문
- 논리 회로의 역할을 수행하는 퍼셉트론
사람의 신경계는 가장 작은 단위인 뉴런이 모여 신경망을 이루고 이 신경망을 통해 지능을 갖게 되는 것처럼 인공지능에서도 가장 작은 단위인 퍼셉트론이 모여 인공 신경망을 이루고 이것을 통해 인공지능을 갖게 된다.
- 논리 회로의 정의
일정한 논리 연산에 의해 출력을 얻는 회로를 의미한다.
컴퓨터에서 사칙 연산은 논리 회로가 담당하고 있다. 논리 회로가 작동하기 위해 모든 숫자는 이진수로 변환한다. 이진수는 숫자 '1'과 '0'으로만 이루어진 숫자 체계이다.
일반적으로 숫자 '1'은 논리적으로 '참(true)'을 의미하며 회로에 전류가 흐르고 있음 뜻하고, 숫자 '0'은 '거짓(false)'을 의미하며 회로에 전류가 흐르지 않음을 뜻한다.
- AND gate
AND gate는 우리 말로 '그리고'에 해당하는 논리 회로이며, 들어오는 데이터가 모두 참일 경우에 1을 반환하는 논리 회로이다.
위 도표와 같이 들어오는 데이터가 모두 참 일 경우에만 1을 반환하며, 둘중 하나라도 0이거나 모두 0일 시에는 0을 반환한다.
- 퍼셉트론과 논리 회로 - AND gate
위 그래프와 같이 퍼셉트론에 AND gate를 적용 시켰을 때 선형 그래프를 기준으로 위쪽으로 해당하는 수들의 조합은 모두 1이 출력되고 아래쪽으로 해당하는 수들의 조합은 모두 0으로 출력되는 것을 나타내고 있다.
각각의 좌표를 볼 때 AND gate는 (1,1)이 들어올 때 1을 반환하므로 (1,1)을 제외한 나머지 좌표들은 0의 값을 반환하는 것을 확인할 수 있다.
- OR gate
OR gate는 우리말로 '또는'에 해당하는 논리 회로이며, 입력되는 데이터의 값이 둘중 하나라도 1이거나 둘다 1인 경우 1을 반환하는 논리 게이트이다.
도표에서 확인할 수 있듯이 입력되는 값이 모두 0인 경우 0을 반환한다.
- 퍼셉트론과 논리 회로 - OR gate
앞서 설명한 AND 그래프와 같이 그려진 선형 그래프를 기준으로 위쪽의 경우 1을 반환, 아랫쪽의 경우 0을 반환하게 된다.
하지만 AND그래프와는 다르게 그래프가 좀 더 0에 가깝게 그려진 것을 확인할 수 있는데, 이는 OR gate의 경우 (1,0) , (0, 1), (1,1)에서 1을 반환하기 때문이다.
- NAND gate
NAND gate는 AND gate와 비슷하게 생겼지만 앞에 원형 기호가 하나 붙어있는데 이는 NOT을 나타내는 기호이다.
따라서 NAND gate의 출력값은 도표와 같이 기존의 AND gate의 값과 반대로 출력되는 것을 알 수 있다.
- 퍼셉트론과 논리회로 - NAND gate
위 두개의 사진을 서로 비교해보면 AND gate와 NAND gate간의 어떠한 차이점이 있는지 확인할 수 있다.
NAND gate의 경우 (0, 0), (1, 0), (0, 1) 에서 1의 값을 반환하고 (1, 1)에서 1의 값을 반환하기 때문에 AND gate와는 반대로 선형그래프를 기준으로 위쪽의 값이 모두 0을 반환하고, 아래쪽 값은 모두 1을 반환한다는 것을 확인할 수 있다.
- NOR gate
NOR gate 역시 OR gate 앞에 NOT을 뜻하는 원형기호가 붙어있기 때문에 기존의 OR gate가 출력하던 출력값에서 반대되는 값을 출력하는 것을 도표를 통해 확인 할 수 있다.
- 퍼셉트론과 논리회로 - NOR gate
앞서 NAND gate와 AND gate를 비교했던 것과 마찬가지로 NOR gate의 그래프 역시 OR 그래프와 반대되는 형태로 출력되는 것을 확인할 수 있다.
선형그래프의 윗쪽으로는 0의 값이 반환되고 아랫쪽으로는 1의 값이 반환된다.
- 선형 분류를 위한 퍼셉트론 : 단층 퍼셉트론(Single Layer Perceptron)
위에서 설명한 논리 회로를 조합하여 이와 같이 단층 퍼셉트론을 구현할 수 있다.
- 입력층(Input Layer)
Input Layer는 외부로부터 데이터를 입력받는 신경망 입구의 Layer이다.
데이터의 Feature 값을 $$ x_{1}, x_{2}, ... ,x_{n} $$과 같이 표현하며 bias는 "편향" 즉, 하나의 뉴런으로 입력된 모든 값을 다 더한 다음에(가중합이라고 한다.) 이 값에 더 해주는 상수이다. 위 이미지에서는 $$ w_{0} $$으로 표현되어 있다.
- 출력층(Output Layer)
출력층인 Output Layer는 모델의 최종 연산 결과를 내보내는 신경망 출구의 Layer을 나타낸다.
앞서 설명했던 Input Layer의 Feature 값에 모델이 학습한 가중치를 각각 곱하여 모든 값을 더해서 나온 값을 바탕으로 출력 값을 결정하게 된다.
해당 과정을 수식으로 나타내게 되면 $$ x_{1} * w_{1} + x_{2} * w_{2} + ... + x_{n} * w_{n} + w_{0} $$로 나타낼 수 있게 된다.
- 퍼셉트론을 활용한 선형 분류기
이를 통해 이론적으로 우리는 "이진분류" 즉, 두 개의 데이터를 분류 할 수 있다는 것을 앞서 설명한 논리 회로를 통해 알 수 있다.
이를 정확하게 분류하기 위해선 이미지 전처리 및 편향값 조절 등 사람이 세밀하게 조절해줘야 될 부분이 많지만 우리는 0과 1만을 이용하여 계산하던 퍼셉트론 논리 회로를 확장시켜 개와 고양이 이미지가 들어왔을 때 각각의 이미지가 어떤 부분에 속해있는지를 분류하는 선형 분류기를 제작할 수 있고, 이를 통해 데이터 분류가 가능해진다.
# 출처
엘리스 AI 트랙 7기 - [강의자료] 퍼셉트론
딥러닝에서 가중치, 편향의 역할
'인공지능' 카테고리의 다른 글
[딥러닝 기초] 2장 텐서플로우와 딥러닝 학습 방법 - 딥러닝 모델의 학습 방법 (0) | 2023.08.30 |
---|---|
[딥러닝 기초] 1장 퍼셉트론 - 다층 퍼셉트론 (0) | 2023.08.28 |
[딥러닝 기초] 1장 퍼셉트론 - 비 선형적인 문제 (0) | 2023.08.25 |
[딥러닝 기초] 1장 퍼셉트론 - 퍼셉트론(Perceptron) (0) | 2023.08.22 |
[딥러닝 기초] 1장 퍼셉트론 - 딥러닝 개론 (2) | 2023.08.20 |