본문 바로가기

기계학습/[밑바닥부터 시작하는 딥러닝]7

4장 신경망 학습 코드 모음 1) 손실함수 - 평균 제곱 오차, 교차 엔트로피 오차** 결괏값이 0에 가까울수록 (작을수록) 더 정확한 추측값이다-> 추측값이 정확한지 아닌지를 확인하기 위한게 손실함수의 역할 ** 원리 : 활성함수를 구한 값을, 손실 함수에 넣는다 (받는 값=활성함수 값, one-hot값) -> 정확도를 체크 -> 매개변수 수정 1234567891011121314151617import numpy as np def mean_squared_error(y,t): return 0.5*np.sum((y-t)**2) def cross_entropy_error(y,t): delta = 1e-7 return -np.sum(t*np.log(y+delta)) y = np.array([0.1, 0.05, 0.6, 0.0, 0.05, .. 2019. 8. 8.
3장 신경망 코드들 모음 1) 계단함수 구현하기 - 간단한 버전 12345678910def step_func(x): if x>0: print("1") return 1 elif x 0 print(y.astype(np.int)) return y.astype(np.int) def step_func2(x) : y = x > 0 print(y.astype(np.int)) return y.astype(np.int) step_func2(np.array([-1, 3]))step_func1(np.array([4]))cs 3) 계단함수 그래프 그리기 - matplotlib 활용하기** 함수 구현 부분에서, 굳이 np.array(~)를 할 필요가 없다. 알아서 array형식으로 출력됨12345678910111213import numpy as npi.. 2019. 8. 6.
2장 퍼셉트론 코드들 모음 1) AND 구현 12345678910111213141516171819def AND(x1, x2): w1, w2, theta = 0.5, 0.5, 0.7 tmp=x1*w1+x2*w2; if tmp theta: return 1 a = AND(0,0)print(a)a = AND(0,1)print(a)a = AND(1,0)print(a)a = AND(1,1)print(a) Colored by Color Scriptercs 2) numpy 가져와서 퍼셉트론 기본계산 구현하기 123456789import numpy as np x = np.array([0, 1])w = np.array([0.5, 0.5])b = -0.7; print(w*x)print(np.sum(w*x))print(np.sum(w*x)+b)cs 3.. 2019. 8. 6.
7장 정리 - CNN 응용분야 : 이미지 인식, 음성 인식 전체 구조//- 신경망의 종류 1) (Affine 계층 + ReLU계층) * N + (Affine + SoftMax)-> 완전 연결 계층 (인접하는 계층의 모든 뉴런들과 결합되어 있음) 2) (Conv + ReLU + Pooling) * N + (Affine+ReLU) * M + (Affine+SoftMax)-> 합성곱 계층 합성곱 계층// - 완전연결 계층의 문제점 : 데이터의 형상이 무시됨 (모두 1차원으로 평탄화 해줘야됨) -> 합성곱 계층은 입출력 모두 원래의 차원으로 유지함 - 특징맵 : 합성곱 계층의 입출력 데이터 1) 입력 특징 맵 : 입력 데이터 2) 출력 특징 맵 : 출력 데이터 - 합성곱 연산 : 필터(커널) 연산 - 필터의 윈도우를 일정 간격 이동.. 2019. 8. 6.
6장 정리 - 학습관련 기술들 학습 관련 기술들-6장 신경망 학습 핵심 개념1) 가중치 매개변수 최적값 탐색 방법 (최적화 방법)2) 가중치 매개변수 초깃값/하이퍼파라미터 설정방법3) 오버피팅 대응책 - 가중치 감소/드롭아웃 등의 정규화 방법4) 배치 정규화 방법 -> 신경망(딥러닝) 학습의 효율+정확도 상승 가능 1. 매개변수 갱신// - 의의 : 신경망 학습의 목적 = 손실함수의 값을 최대한 낮추는 매개변수 탐색 -> 매개변수의 최적값을 찾는 것 -> "최적화" 라 한다 - 문제점 : 매개변수 공간이 너무 넓고, 복잡 -> 최적의 솔루션 찾기 힘듬-> 그나마 빠른 최적화 방법 : 확률적경사하강법, etc - SGD의 한계점 : - 비등방성 함수에서는 탐색 경로가 비효율적-> 해결책 : 모멘텀, AdaGrad, Adam - 모멘텀 .. 2019. 8. 6.
4장 정리 - 신경망 학습 신경망 학습/// - 학습 : 훈련 데이터로부터 가중치 매개변수 최적값을 자동으로 획득하는 것.- 손실함수 : 신경망이 학습할 수 있도록 해주는 지표.-> 손실함수 결괏값을 가장 작게 만드는 가중치 매개변수를 찾아야 함. - 종류 : 경사법 .... - 알고리즘의 구분 : 인간의 개입 정도에 따른 구분 1) 인간 only : 이미지 보기 -> 사람이 생각한 알고리즘 -> 결과 2) 인간 + 기계 : 이미지 보기 -> 사람이 생각한 특징(SIFT, HOG) -> 기계학습(SVM, KNN) -> 결과 3) 기계 only : 이미지 보기 -> 신경망(딥러닝) -> 결과 ** "종단간 기계학습" 이라고 불린다 - 기계학습의 데이터 종류 1) 훈련 데이터 : 최적의 매개변수를 찾는데에 사용 2) 시험 데이터 : .. 2019. 8. 6.
1장-3장 정리 - 퍼셉트론~신경망 1~2장///퍼셉트론 : 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 것. - 가중치와 신호가 곱해진 값들의 합이 임계값을 넘어설때에만 1을 출력-> 여기서는 Θ으로 표현함** 전기에서, 저항 이랑 비슷한 개념으로 쓰임.-어떠한 논리식을 표현하고 싶을 떄, 이에 해당하는 1) 가중치 와 2)임계값 을설정해준다-> 여러개의 가중치/임계값 쌍이 존재한다.-> 어떤 가중치와 임계값을 설정하는지는 인간이 정하는 것 (학습 데이터 설정하기. 학습이란, 적절한 매개변수 값을 정하는 작업)- 실제 식에선, 임계값을 사용하기보단 "편향"을 사용한다. - 선형 : 참값과 거짓값을 가를 수 있는 직선이 있을때.-> 단순 퍼셉트론- 비선형 : 참값과 거짓값을 가를 수 있는 직선이 없을때. 곡선이 있어야함.-> 다층 .. 2019. 8. 6.