Deep Learning from scratch chapter 2. perceptron
밑바닥부터 시작하는 딥러닝 2장 퍼셉트론
|
Deep Learning from scratch 밑바닥부터 시작하는 딥러닝 원문 저자 사이토 고키 번역판 한빛미디어 |
본문은 필자가 <밑바닥부터 시작하는 딥러닝> 번역판의
해당 챕터 전문을 요약 정리한 포스팅입니다
교재에 있으나 해당 포스팅에서 생략된 내용은 거의 없으며
교재에 생략된 내용은 필자가 보충하여 작성했습니다
2.3.2 가중치와 편향 도입
세타로 표기했던 것을 -b로 치환하여 다시 정리해보자면 다음과 같다
b는 bias 편향이고 w값들은 그대로 가중치를 의미한다
퍼셉트론은 입력 신호에 가중치를 곱한 값과 편향을 합해서
그 값이 0을 넘으면 1을 출력하고 넘지 않으면 0을 출력하는 방식이다
넘파이 배열끼리 곱하는 것은 두 배열의 원소 수가 같으면 각 원소끼리 곱한다
그래서 w*x에서는 인덱스 같은 원소끼리 곱하는 것으로
[0, 1] * [0.5, 0.5] = [0. 0.5]
np.sum 메서드는 입력한 배열에 담긴 모든 원소의 총 합을 계산해주고
가중치에 편향까지 더해주면 마지막 연산이 끝난다
2.3.3 가중치와 편향을 도입한 세부 구현
2.3.3.1 AND 세부 구현
마이너스 세타를 편향 b로 치환한 형태이다
편향과 가중치의 역할이 다르다는 것에 주의해야하는데
가중치는 각각의 입력신호가 갖는 값으로 입력 신호가 결과에 주는 영향력을 조절하는 역할의 매개변수이고
편향은 뉴런이 얼마나 쉽게 활성화되는지 조절하는 역할의 매개변수이다
뉴런이 쉽게 활성화될수록 결과로 1을 출력한다
어떤 의미이냐면 b 편향을 -0.1로 설정해두면
각 입력 신호에 가중치를 곱한 값의 합이 0.1을 초과하는 경우에만 뉴런이 활성화된다
만약 b를 -20.0으로 설정해두면 20.0을 넘지 않으면 활성화하지 않는 것이다
2.3.3.2 NAND 세부 구현
AND 게이트와 NAND, OR 게이트는 구조는 동일하고
가중치 매개변수 값만 다르다
2.3.3.3 OR 세부 구현
2.4 퍼셉트론의 한계
2.4.1 XOR 게이트
XOR 게이트는 배타적 논리합이라는 논리 회로이다
배타적이라는 의미가 본인 외에는 거부한다는 의미이기 때문에 입력 신호인 x1, x2 중 하나가 1일 때만 1을 출력한다
가중치와 매개변수 값을 어떻게 설정하는가에 따라 퍼셉트론이 달라진다고 했지만
위 진리표를 만족하는 매개변수는 찾을 수 없어서 지금까지와는 다른 변화가 필요하다
OR 게이트의 진리표를 만족하는 가중치 매개변수 쌍 (b, w1, w2) = (-0.5, 1.0, 1.0) 의 퍼셉트론을 그래프로 나타내면
퍼셉트론은 전체 영역을 하나의 직선으로 두 개의 영역으로 나눈다
직선으로 나뉜 한쪽 영역은 1을 출력하고 다른 한쪽은 0을 출력하는 영역이어야 한ㄴ다
OR 게이트는
(x1, x2)일 때 (0,0) 일 때 0을 출력하고 (0,1)(1,0)(1,1)일 때는 1을 출력하는 게이트이므로
0을 원, 1을 삼각형으로 표현한 그림에서 원과 삼각형을 직선으로 나누어야 한다
XOR 게이트를 좌표로 찍고 직선 하나로 0과 1의 영역을 나눌 수 없다
이것이 퍼셉트론의 한계
2.4.2 선형과 비선형
직선이라는 제약 때문에 구역을 나눌 수 없었으나 직선 제약이 없다면 나눌 수는 있다
곡선을 통해 나뉘어진 곡선의 영역을 비선형 영역
직선의 영역은 선형 영역이라고 부르고
기계학습 ML 분야에서 많이 쓰이는 용어이다
2.5 다층 퍼셉트론의 등장
직선으로 영역을 구분할 수 없는 XOR 게이트로 퍼셉트론의 한계를 알 수 있다
퍼셉트론 중에서도 단층 퍼셉트론의 한계였는데
퍼셉트론을 여러 층으로 쌓아 다층 퍼셉트론을 만들 수 있고 이를 통해 한계를 극복할 수 있다
XOR 게이트를 만드는 방법은 다양하다
2.5.1 기존 게이트 조합
AND NAND OR 게이트를 조합해서 XOR 게이트를 만들 수 있다
다음은 게이트 기호이다
NAND 게이트 기호 출력부에 있는 동그라미는 출력을 반전한다는 의미이다
nand or 게이트의 출력이 and 게이트의 입력으로 이어지는 구조이고 이를 진리표로 나타내면 다음과 같다
2.5.2 XOR 게이트 구현
XOR연산은 다층 퍼셉트론 중 2층 퍼셉트론이다
단층 퍼셉트론으로는 구현하지 못한 것을 층을 하나 늘리는 방법으로 구현할 수 있다
동작을 자세히 서술해보자면
0층의 두 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호를 보내고
1층의 뉴런이 2층의 뉴런으로 신호를 보내고
2층의 뉴런은 출력한다
2.6 NAND에서 컴퓨터까지
다층 퍼셉트론을 통해 컴퓨터를 표현할 수도 있다 (이론상)
다층 퍼셉트론을 활용하면 복잡한 연산 표현이 가능하다는 것
'[ Artificial Intelligence ] > Seminar' 카테고리의 다른 글
[AI/ML] E2E domain decomposition kernel 도메인 분해 커널 (0) | 2024.11.22 |
---|---|
[AI/DL] 밑바닥부터 시작하는 딥러닝 2장. 퍼셉트론 1 (번역판 전문 요약) (5) | 2024.09.13 |
[AI/Semiconductor] 인공지능을 활용한 반도체 제조 공정 효율화 (0) | 2023.10.16 |