Deep Learning Specialization 강의

    ML Strategy (2주차) 정리

    Carrying out Error Analysis "고양이 분류기에서 개도 고양이로 분류해버리는 상황"에 처했다고 해보자. 이때 개가 아니라고 분류하기 위해 시간을 쓸 지말지 결정해야하는 상황에서, 에러 케이스를 분석해볼 수 있다. dev set에서 100개의 잘못 분석된 경우를 구해보고, 여기서 개 사진인 경우의 개수를 세어보자. 만약 5% 정도라면 굳이 시간을 들여서 개에 대한 분석의 성능을 높일 필요는 없을 것이다. 반면 50%가 개 사진이라면 개에 대한 분류를 해볼 필요성을 느낄 것이다. 이런 식으로 이미 에러인 케이스들을 분석해봄으로써(오차분석) 이후 방향을 결정할 수 있다.  만약 모델을 개선하기 위해 여러 아이디어가 있다고 가정해보자. 이럴 때 에러 케이스가 어떤 사진에서 나타나는지 각각 개..

    ML Strategy (1주차) 정리

    Orthogonalization (직교화) Orthogonalization이란? : 보통 직교한다는 것은 두 각이 직각을 이루는 것을 의미한다. 운전을 할 때의 예시에 적용해보면, 하나의 차원은 각도만 움직이고 하나의 차원은 속도를 조절한다고 하면,  두 각이 직각을 이루도록 설계를 하는 것이다. 즉 하나의 버튼 (동작)이 하나의 기능만 하도록 설계하는 것을 의미한다. 이렇게 직교화를 고려해서 설계를 하는 것은, 다양한 하이퍼파라미터를 고려해야하는 ML에서 중요한 요소라고 할 수 있다.    직교화가 잘 되어 있으면 training set -> dev set -> test set -> real word 로 가는 ML 파이프라인에서 각 상황에 맞게 조절할 수 있다. 그런데 예를 들어 early stoppi..

    Hyperparameter Tuning, Batch Normalication and Programming Frameworks (3주차) 정리

    Tuning ProcessHyperparameter을 세팅하는 법. 즉 체계적으로 최적의 Hyperparameter를 찾아내는 법에 대해 알아보자.빨간색으로 표시한 alpha, 즉 learning rate이 제일 중요하다.그 다음에는 노란색으로 표시한 모멘텀 알고리즘에서 사용하는 beta, mini batch size, hidden unit의 개수정도가 중요하다.그리고 세번째로 중요한건 보라색으로 표시한 layer의 개수, learning rate decay가 중요할 것이다. 그 외에는 Adam 알고리즘에서 사용하는 것들인데, 이것들은 사실상 값이 고정되어있어서 큰 의미는 없다. (물론 정해진 답이 있는 문제는 아니다.) 그렇다면, 튜닝할 값의 집합을 어떻게 선택할까? 하이퍼 파라미터의 개수가 많지 않을..

    Optimization Algorithms (2주차) 정리

    *다음 내용은 Andrew ng의 Deep Learning Specialization 과정 중 일부 강좌를 정리한 강의 노트입니다.틀린 내용이 있다면 말씀해주세요. Mini-batch Gradient Descentmachine learning : 매우 empirical process이다. 즉 반복적인 작업이 많다. 따라서 빨리 모델을 훈련시키는 것이 중요하다.→ 난점: 딥러닝은 big data일 때 더 잘 작동하는데 big data일수록 훈련하는 데에 있어 시간이 많이 소요된다. Batch : 모델 학습 중 parameter를 업데이트할 때 사용할 데이터 개수일반적인 Batch는 훈련예제 전부를 한번에 train하는 것이다. 그런데 m이 500만인 경우, 한번 훈련시키는데 시간이 많이 걸리므로 훈련 예제..

    Practical Aspects of Deep learning (1주차) 정리

    *다음 내용은 Andrew ng의 Deep Learning Specialization 과정 중 일부 강좌를 정리한 강의 노트입니다. 틀린 내용이 있다면 말씀해주세요.  5개의 강좌중 두번째 강좌의 시작이다. 첫번째 강좌에서는 기본적으로 딥러닝을 구축하는 방법을 배웠다면. 이번 강좌에서는 구축한 딥러닝의 성능을 어떻게 끌어올릴 지에 대해 다룰 것이다. Train / Dev / Test sets 딥러닝 관련 경험이 풍부한 사람들 조차도, 한번의 시도만에 하이퍼 파라미터 (learning weight, layer의 개수, hidden unit의 개수, 활성화 함수 선택 등등..)를 정확하게 설정하는 것은 불가능에 가깝다. 따라서 실제로 머신러닝은 iterative process(반복적인 과정)이다. 따라서, ..

    Deep Neural Networks (4주차) 정리

    *다음 내용은 Andrew ng의 Deep Learning Specialization 과정 중 일부 강좌를 정리한 강의 노트입니다. 틀린 내용이 있다면 말씀해주세요.  이번주차는 DNN에 대해 배우는데, 사실상 지금까지 배운 shallow neural network를 반복한 것이기 때문에 지금까지 배운 것의 반복이라고 보아도 무방하다. Deep L-layer Neural Network 이번 주차의 목표: 3주차동안 배운 아이디어를 묶어서 나만의 심층 신경망을 구현하는 것 logistic regression : very "shallow" model1 hideen layer = 2 layer NN (hidden layer, output layer) L ← 네트워크의 레이어 수를 나타낸다.n ← 특정 레이어의..

    Shallow Neural Network (3주차) 정리

    *다음 내용은 Andrew ng의 Deep Learning Specialization 과정 중 일부 강좌를 정리한 강의 노트입니다. 틀린 내용이 있다면 말씀해주세요.   Neural Network Representation윗첨자 대괄호 : 어떤 레이어에서 왔는지 명시적으로 나타낸다. a[0] = X (input layer)a[1] (hidden layer) → n * 1 행렬 형태=> layer을 의미하는 것은 위 첨자인 []이고, 한 layer에서 순서를 의미하는 것은 아래 첨자이다. a[2] → 실수 위 이미지에 있는 것을 2 layer NN이라고 한다. 왜냐하면 신경망에서 보통 레이어를 계산할 때 입력층은 계산하지 않기 때문이다. 그리고, hidden layer와 output layer에서는 연관된..

    Logistic Regression as a Neural Network (2주차) 정리

    *다음 내용은 Andrew ng의 Deep Learning Specialization 과정 중 일부 강좌를 정리한 강의 노트입니다. 틀린 내용이 있다면 말씀해주세요. (네트워크 문제로 자꾸 글이 날아가서 다소 짧습니다..) 신경망을 계산할 때, forward pass (순방향) 이 있고, backward pass (역방향) 전달이 있다. 이번주에는 왜 전파가 되는지, 왜 역방향 전파가 되는지에 대해 소개해보도록 한다. logistic regression을 통해 이를 설명할 예정이다. 이미 알고 있는 개념이라고 해도 새로운 아이디어를 몇가지 얻을 수 있을 것이다. Binary Classification  Notation (이 강의에서 사용할 몇 가지 표기법 정리) (x, y)x = x차원을 가진 특징 벡터..