본문 바로가기

딥러닝/DeepLearning.ai

(9)
4주차. Programming: Deep Neural Network - Application 1. packages import time import numpy as np import h5py import matplotlib.pyplot as plt import scipy from PIL import Image from scipy import ndimage from dnn_app_utils_v3 import * %matplotlib inline plt.rcParams['figure.figsize'] = (5.0, 4.0) # set default size of plots plt.rcParams['image.interpolation'] = 'nearest' plt.rcParams['image.cmap'] = 'gray' %load_ext autoreload %autoreload 2 np.random..
4주차. Programming: Building deep neural network 1. Packages import numpy as np import h5py import matplotlib.pyplot as plt from testCases_v4a import * from dnn_utils_v2 import sigmoid, sigmoid_backward, relu, relu_backward %matplotlib inline plt.rcParams['figure.figsize'] = (5.0, 4.0) # set default size of plots plt.rcParams['image.interpolation'] = 'nearest' plt.rcParams['image.cmap'] = 'gray' %load_ext autoreload %autoreload 2 np.random.see..
4주차. Deep Neural Networks Forward propagation in a deep network Getting your matrix dimensions right Why deep Representations? deep neural network가 shallow network 보다 더 쉽고 간편하게 계산 가능 Building blocks of deep neural networks forward propagation에서 layer마다 W[l],b[l]으로 a[l]을 계산하여 yhat까지 계산함. Z[l],W[l],b[l]도 추가적으로 계산하여 저장해놓음. backward propagation에서는 da[l]으로 dw[l],db[l],da[l-1]을 계산하면서 W[l],b[l]을 update 함. Forward and Backward p..
3주차. Programming assignment 1. packages import numpy as np import matplotlib.pyplot as plt from testCases_v2 import * import sklearn import sklearn.datasets import sklearn.linear_model from planar_utils import plot_decision_boundary, sigmoid, load_planar_dataset, load_extra_datasets %matplotlib inline np.random.seed(1) np.random.seed()로 결과값이 항상 동일하도록 설정했다. 2. dataset X, Y = load_planar_dataset() plt.scatter(X[0, :], X[1, :..
3주차. Shallow Neural Network Neural Networks Overview 2주차에서 1층으로 이루어진 neural network의 구조와 back propagation(da,dw,db)을 계산하는 방법을 알아보았다. 이번 단원에서는 2층 신경망에 대해서 알아볼 것이고, 그림은 forward propagation 과정을 나타냈다. backward propagation으로 (da[2]),dz[2],dW[2],db[2],(da[1]),dz[1],dW[1],db[1]을 어떻게 나타내는 지도 볼 것이다. Neural Network Representation neural network는 입력층인 input layer, 출력층인 output layer, 그리고 그 두 층을 제외한 중간의 모든 층인 hidden layer로 구성된다. 0층부터 a..
2주차. Programming: Logistic Regression with Neural Network mindset 1. Package 불러오기 목표 data.h5라는 data set에는 다양한 사진 데이터가 있고, 이것이 고양이인지(1) 아닌지(0) linear regression으로 분류하는 모델을 만들 것이다. 2. Problem Set에 대한 Overview 데이터 셋 확인 train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_dataset() train_set_x_org.shape (209, 64, 64, 3): 209개의 example을 가지고 있다. 하나의 example은 r,g,b의 채널을 가지고 각 채널에는 64*64의 array로 0~255개의 숫자가 표시된다. (하나의 example이 64*64짜리 array로 표시되는..
2주차. Vectorization Vectorization - for 문으로 관측치 하나하나 계산을 하는 것보다 벡터 형태로 만들어서 계산을 하는게 훨씬 빠르고 계산 비용이 적게 든다. - SIMD(simple instruction multiple data): GPU, CPU에서 계산 속도가 빨라진다. More Vectorization Examples - A가 행렬, v가 벡터일 때 np.dot(A,v)로 행렬의 곱 계산 가능 - element wise 하게 여러 계산을 적용할 수 있다. u=np.exp(v) u=np.log(v) u=np.abs(v) v의 모든 element에 exp, log, abs 등의 계산을 적용할 수 있다. Vectorizing Logistic Regression logistic regression에서도 forw..
2주차. Logistic Regression as a Neural Network Binary classification 사진이 고양이인지(1) 아닌지(0)를 분류하기 위한 neural network를 만들려고 한다. 이진 분류 문제(binary classification)는 machine learning model 중 logistic regression을 사용하면 된다. input data는 사진이기 때문에 사진의 색깔을 64*64 행렬의 r,g,b 값을 3차원의 array로 받는다. 이를 하나의 길다란 벡터로 만들어서 사용한다. nx는 벡터로 만든 input data의 길이로, 여기선 64*64*3=12288이 된다. 이 X 벡터를 neural network 안에 넣어서 y(0 또는 1)을 예측할 것이다. 하나의 example에 대해서 X는 nx*1짜리 벡터이다. 우리는 여러개의 ..