본문 바로가기

파이썬 프로그래밍59

11. 단층 퍼셉트론의 한계-1.XOR 문제 1969년 우리가 지금까지 사용한 단층 퍼셉트론은 XOR 문제를 해결할 수 없다고 증명되었다. 인공지능 연구 진척이 더뎌지기 시작했는데 도대체 무슨 일이 있었던 걸까 1. 논리게이트 (Logic gate) 논리게이트는 쉽게 말해 회로에서 사용되는 논리적 연산을 위한 전자도구이다. 이러한 논리적 전자 도구가 없었다면 우리는 다양한 전자기기들을 사용하지 못했을 것이다. 어떻게 작동하는지 궁금하다면 아래 동영상을 참고해 보길 바란다. Making logic gates from transistors 논리게이트는 입력 신호를 논리적 처리를 하고 출력한다. 아래 표는 입력에 따른 출력을 나타낸다. 이번 시간은 4가지, OR, AND, NAND, XOR을 이야기 해 보겠다. 0 : 입력 없음 1 : 입력 있음 위의 .. 2022. 1. 11.
10. 단층 퍼셉트론 지금까지 했던 모델들은 모두 단층 퍼셉트론(또는 싱글 퍼셉트론) 연산이다. Numpy 딥러닝 시리즈를 보면 모두 단층 퍼셉트론으로 어설픈(?) 딥러닝을 구현한 것을 알 수 있을 것이다. 구체적으로 어떤 것을 했었는지 살펴보자. 1. 복습 1) '1.선형회귀 구현하기' 2) '3.입력 특성이 2개인 선형회귀 구현' 3) '4. 로지스틱 회귀 구현하기' 평균 득점(avg_score), 리바운드 횟수(rebound), 어시스트 횟수(asist)에 따른 신인 농구 선수의 NBA 드래프트 여부 (1:성공, 0:실패) 구현하기 4) '7. 다중 분류 구현하기' Iris 꽃 4개의 특성을 입력 받아 3개의 꽃으로 분류하기 2. 퍼셉트론 퍼셉트론(Perceptron)은 1943년에 제안된 아이디어로 쉽게 설명하자면 위.. 2022. 1. 10.
9. 다중 분류 구현하기(심화실습) 이전시간에 언급한 대로, Iris 꽃 데이터 중 일부(30개)를 불러와 학습해 볼 것이다. 아래 파일을 임포트한다. 사용하기 쉽게 미리 원-핫 인코딩을 하였다. 1. 데이터 준비 파일을 임포트하고 슬라이스를 통해 입력데이터 input, 목표값 데이터 target으로 분리한다. import numpy as np from numpy import genfromtxt np.random.seed(220106) data = genfromtxt('IRIS_tiny_onehot.csv', delimiter=',', skip_header=1) input = data[:, 0:4] target = data[:, 4:7] W = np.random.randn(3, 4) B = np.random.randn(3, 1) learn.. 2022. 1. 9.
8. 다중 분류 구현하기(기초실습) 이전시간에 소프트맥스, 크로스엔트로피를 이용하여 아이리스 꽃 분류 문제를 어떻게 해결할 수 있는지 이론적으로 알아보았다. 이번엔 단 한개의 데이터를 이용하여 이론을 넘파이 코드로 작성하고 pytorch와 비교해보는 시간을 갖도록 하겠다. 1. 데이터 정의 입력 input, 목표값 target, 가중치 W, 편향 B, 학습률 learning_rate를 정의한다. import numpy as np np.random.seed(220106) input = np.array([[1.2, 2.4, 3.6, 1.8]], dtype=np.float32) target = np.array([[0, 0, 1]], dtype=np.int32) W = np.random.randn(3, 4) B = np.random.randn(3.. 2022. 1. 9.