본문 바로가기
[Bus Classification] ① 주제 선정하기 딥러닝을 처음 공부하면서 가장 많이 다뤘던 CNN을 활용한 프로젝트를 진행 해보고 싶었다. 이미지 분류에서 좋은 성능을 보인다는 CNN을 어떤 산업 혹은 어디에 적용시키면 좋을 지 많이 생각해 보았다. "이미지 분류" 는 앞을 볼 수 있는 평범한 우리 보다 앞을 볼 수 없는 시각장애인들에게 도움이 될 것이라고 생각했다. 시각 장애인들의 불편함을 위주로 검색한 결과 대중교통을 이용할 때, 특히 버스를 이용할 때 가장 큰 불편함을 느끼는 것을 파악할 수 있었디. 시각장애인이 버스 정류장에서 비슷한 버스들을 여러대가 동시에 오는 상황에서 , 어떤 버스를 어느 타이밍에 타야하는지 정확히 파악하는 것은 정말 어려운 일이였던 것이다. 이러한 버스 정류장에서 시각 장애인들이 겪는 불편함을 해소해보고자 CNN을 활용한.. 2020. 7. 11.
[케라스 실습] MNIST CNN신경망 다뤄보기 여기 내용까지 지난번에 했던 과제를 올리느라 png파일 입니다. 다음 부터는 코드를 쉽게 볼 수 있도록 정리하려고 노력해보겠습니다. 2020. 7. 4.
[케라스 실습] MNIST ANN 신경망 spyder 환경에서 파이썬으로 ANN 을 실행해보다가 keras로 ANN을 작성하니 천국이 따로 없었습니다. 코드의 길이가 10배는 줄어든것 같습니다. 2020. 7. 4.
[딥러닝 실습] Gradient check? 수치미분 VS 오차연적파법 앞에서 두가지의 방법으로 기울기를 구했었습니다. 하나는 단순히 수치미분 방법을 사용해서, 그리고 오차역전파법(backpropagation)을 사용해서 였습니다. 수치미분으로는 매개변수(파라미터)가 많을 때, 너무 느려지는 단점을 극복 할 수 없습니다. 따라서 빠르게 계산해 줄 수 있는 오차역전파법(backpropagation)으로 해결을 해주었습니다. 두 가지 방식으로 구한 기울기가 동일한것을 확인하는 과제입니다. [밑바닥 부터 시작하는 딥러닝] 책의 코드를 참고하였습니다. 2020. 7. 4.
[딥러닝 실습] numerical_gradient 경사하강법 def numerical_gradient(f,x): h = 1e-4 grad = np.zeros_like(x) it = np.nditer(x, flags = ['multi_index'],op_flag= ['readwrite']) while not it.finished: idx = it.multi_index tem_val = x[idx] x[idx] = float(tmp_val)+h fxh1 = f(x) x[idx] = tem_val -h fxh2 = f(x) grad[idx] (fxh1 = fxh2) / (2*h) x[idx] = tmp_val it.iternext() return grad 2020. 4. 24.
[딥러닝 실습] Loss function 좋은 신경망이란 무엇일까? loss function이 작은것도 하나의 답이 될 수 있을것같다. 1. MSE(평균 제곱 오차) 2. 교차 엔트로피 오차 에 대해서 공부했다. 수식은 생략하겠다. import numpy as np #평균 제곱 오차 MSE def mean_squared_error(y,t): return 0.5 * np.sum((y-t)**2) #y는 나의 예측값 t는 실제값이라고 볼 수 있다. t = [0,0,1,0,0,0,0,0,0,0] y = [0.1,0.05,0.1,0.1,0.1,0.1,0.1,0.1,0.0,0.5] ans = mean_squared_error(np.array(y),np.array(t)) print(ans) #0.56125 #교차 엔트로피 오차 cross entropy e.. 2020. 4. 24.
[딥러닝 실습] MNIST 손글씨 인식 실습하기 손글씨 이미지들을 가져와서 인식하는 실습이다. 코드의 구성은 다음과 같다. 1. MNIST 글씨들을 다운 후 저장되어 있는 파일을 내가 원하는 형식으로 저장하기 import gzip import numpy as np fnames =['train-images-idx3-ubyte.gz','train-labels-idx1-ubyte.gz','t10k-images-idx3-ubyte.gz','t10k-labels-idx1-ubyte.gz'] with gzip.open(fnames[0],'rb') as f: train_image = np.frombuffer(f.read (),np.uint8,offset =16) with gzip.open(fnames[1],'rb') as f: train_label = np.fro.. 2020. 4. 18.
[딥러닝 실습] 활성화함수 Softmax 함수 기존의 함수는 0과 1를 구별하는 binary classification 일때 유용하게 쓰였다. 하지만 두개 이상의 classification을 할때 활용되는 함수가 바로 softmax이다. 위의 수식을 간단하게 요약해서 말하자면 "자신" 을 전체로 나눈것. 즉 확률이다. 따라서, 0< P 2020. 4. 14.
[딥러닝 실습] 활성화 함수 연습(step, sigmoid ,relu function) #활성화 항수(step fuction, sigmoid 그려보기) import numpy as np import matplotlib.pyplot as plt def step_function(x): y = x>0 return y.astype(np.int) #astype(np.xx)는 xx형태로 타입을 바꿔주는것 def sigmoid(x): return 1/(1 + np.exp(-x)) def rulu(x): return np.maximum(0,x) x = np.arange(-5.0,5.0,0.01) y1 = step_function(x) y2 = sigmoid(x) plt.plot(x,y1,"r",label ="step function") plt.plot(x,y2,"b",label ="sigmoid func.. 2020. 4. 14.