Part4-12. 가장 단순한 신경망을 통한 작동원리 - 07. (STEP 3) 얕은 신경망 구현
얕은 신경망을 이용한 다중분류 문제
numpy로 직접구현하는 방법사용
# 시그모이드 함수
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 소프트맥스함수
def softmax(x):
e_x = np.exp(x)
return e_x / np.sum(e_x)
# 네트워크 구조 정의
class ShallowNN:
def __init__(self, num_input, num_hidden, num_output):
# weight값은 나중에 넣어줌
self.W_h = np.zeros((num_hidden, num_input), dtype=np.float32) #히든 x 인풋
self.b_h = np.zeros((num_hidden,), dtype=np.float32)
self.W_o = np.zeros((num_output, num_hidden), dtype=np.float32) # 아웃풋 x 히든
self.b_o = np.zeros((num_output,), dtype=np.float32)
#시그모이드 함수를 매트릭연산해서, 히든레이어 weight를 곱하고 bias를 더해줌
#소프트맥스 함수를 매트릭연산해서, 아웃풋 weight를 곱하고 bias를 더해줌
def __call__(self, x):
h = sigmoid(np.matmul(self.W_h, x) + self.b_h)
return softmax(np.matmul(self.W_o, h) + self.b_o)
# 데이터셋 가져오기 정리하기
dataset = np.load('ch2_dataset.npz')
inputs = dataset['inputs']
labels = dataset['labels']
# 모델만들기
model = ShallowNN(2, 128, 10)
# 파라미터 불러오기
weights = np.load('ch2_parameters.npz')
model.W_h = weights['W_h']
model.b_h = weights['b_h']
model.W_o = weights['W_o']
model.b_o = weights['b_o']
모델구동
outputs = list()
# 예측값과 정답을 동시에 출력
for pt, label in zip(inputs, labels):
output = model(pt)
outputs.append(np.argmax(output))
print(np.argmax(output), label)
outputs = np.stack(outputs, axis=0) #numpy로 변환
scatter plot으로 출력
#정답 분포확인
plt.figure()
for idx in range(10):
mask = labels == idx #각 레이블에 해당하는 mask생성
plt.scatter(inputs[mask, 0], inputs[mask, 1]) # 각 label별 다른색으로 그래프 그림
plt.title('true_label')
plt.show()

#예측 분포확인
plt.figure()
for idx in range(10):
mask = outputs == idx
plt.scatter(inputs[mask, 0], inputs[mask, 1])
plt.title('model_output')
plt.show()

Part4-13. 쉽게 배우는 경사하강 학습법 - 01. (STEP 1) 모델의 학습과 최적화 이론
지도학습과 비지도학습
지도학습 - 정답을 알려주고 맞추는 방법
비지도학습 - 정답없이 유용한 정보를 추출
사람의 지도학습
나무의 다양한 모습을 보고 나무를 구분할 수 있게됨
학습매개변수
학습과정에 값이 변화하는 변수. 이 값에 따라 알고리즘 출력이 변화함
손실함수
알고리즘이 얼마나 잘못하고 있는지를 표현하는 지표, 정답과 알고리즘을 비교하는 데 사용
작을수록 좋음
학습환경의 정의
Data, Model, Loss가 중요
알고리즘학습 : 입력(trainable parameter)을 바꿔가면서 출력값(loss function)을 작아지게 하는 것과 동일
최적화 이론 : 출력갑을 가장 작게 또는 크게 하는 입력값을 찾는다
알고리즘학습 = 최적화 이론
'책&강의 학습 > 올인원 패키지 :딥러닝&인공지능' 카테고리의 다른 글
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 28회차 미션 (0) | 2020.07.26 |
|---|---|
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 27회차 미션 (0) | 2020.07.25 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 25회차 미션 (0) | 2020.07.23 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 24회차 미션 (0) | 2020.07.22 |
| [패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 23회차 미션 (0) | 2020.07.21 |
댓글