vectorization

1. Key Concepts on Deep Neural Netoworks (Quiz) 어려운 내용은 아닌데 다 맞히기가 어려워서 몇 번이고 시도했다... cache는 forward를 진행하는 과정에서 backward 계산을 편리하게 하기위해 저장하는 변수값이다. 이때 저장되는 Z는 미분계수를 구하는데 사용된다. parameter에는 W,b가 포함된다. activation function, number of layers 등은 hyper parameter에 속한다. vecotirzation을 통해 explict한 for-loop를 줄일 수 있지만 각 layer에 대한 계산을 수행하는데 있어서는 for-loop를 제외할 수 없다. Z,A를 각 layer에 대해 계산하는 알맞은 코드를 고른다. 결과적으로 Z[1..
1. Neural Networks Overview What is a Neural Network? 앞선 강의들에서 배운 내용을 정리한 것이다. 입력 x를 가중치 w와 곱하고 편향 b를 더한 것을 z로 정의한다. 이 z에 시그모이드 함수를 적용하면 output이 된다. 만약 layer가 깊어지면 z가 새로운 입력이 되어 새로운 가중치 및 편향과 계산을 하게 된다. 변수의 우측 상단에 적힌 [ ] 안의 숫자는 몇 번째 layer에 속하는지를 나타내고 있다. 빨간색 화살표는 back-propagation을 뜻한다. 2. Neural Network Representation hidden layer: 어떤식으로 학습이 이루어지는지 우리가 직접 볼 수 없는 layer다. logistic regression에서는 a가..
1. Broadcasting in python Boradcasting example 세 개의 행 중에서 Carb가 차지하는 비중을 for-loop 없이 해결하는 코드를 작성해보자. 각 열의 값들을 모두 더하여 구한 값으로 각 원소들을 나눠준 뒤 100을 곱하면 percentage를 구할 수 있다. 이를 for-loop가 아닌 built-in function으로 구현하면 위 사진의 맨 아랫 부분 두 줄의 코드에 해당한다. sum(axis=0) 함수를 사용하면 2차원의 matrix에 대해 '세로로' 합을 구해준다. 즉 각 열의 합을 더하여 (4,) 사이즈의 vector가 되는 것이다. 마지막으로 reshape(1,4)는 vector의 사이즈를 2차원인 (1,4)로 조정해주는 것인데 사실 쓰지 않아도 자동적으..
1. Vectorization gradient descent를 통해 값을 update하는 과정의 속도를 빠르게 만들어주는 방식이 vectorization이다. 단순히 python의 for loop를 사용하는 것이 아니라 numpy의 dot를 통해 vector인 w와 x를 빠르게 연산해준다. n차원으로 이루어진 벡터 w,x를 계산하는 것은 np.dot을 이용하는 것이 for loop를 이용하는 것보다 약 300배 이상 빠르다. 이는 강의 내 주피터 노트북을 이용한 실습을 통해 확인할 수 있었다. 이를 explicit for loop의 사용을 피하고 build in functions 사용을 지향하는 것으로 표현할 수 있다. 처음에는 for loop 내에서 왜 z에 저장되는 값을 계속 더해야하는가 했는데 여기..