딥러닝, 머신러닝/모두를 위한 딥러닝 강의 복습

    딥러닝의 기본 개념(교양)

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. 딥러닝(Deep Neural Network)의 시작 문제 발생) XOR 문제 해결이 힘들었음 해결) Backpropagation을 알아내서 해결 (Paul Werbos, Hinton) 새로운 문제 발생) neural net이 깊어지면 backpropagation이 잘 안됨 해결) 초기값만 잘 준다면 깊은 신경망도 잘 작동한다. + 깊은 신경망을 이용해 복잡한 문제 해결 가능하다. (Hinton and Bengio)

    Learning rate, Data preprocessing, Overfitting, Regularization

    Learning rate, Data preprocessing, Overfitting, Regularization

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. 학습률, Learning rate (알파) 1 step이 너무 크면 발산(수렴하지 않음)해버리는 경우가 생길 수 있다. = overshooting 1 step이 너무 작으면 수렴하는데 너무 오래 걸린다. or 최저점에 도달하지 못하고 중간에 멈출 수도 있다. => 적절한 learning rate를 찾아야 함. 처음에 0.01정도로 시작 Data preprocessing이 필요한 이유 w1, w2 2개의 weight가 있을 때, 다음 그림처럼 x1, x2 값이 매우 큰 차이가 있다면 등고선이 굉장히 납작하게 그려진다. 이 경우 gradient descent를 사용했을 때 cost 값이 튀어버릴 수 있다. Learning rate가 적절한 것 같은데..

    Softmax Regression

    Softmax Regression

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. Logistic regression sigmoid -> 0과 1사이 값으로 바꿔줌 2가지를 구분하는 선을 찾는 것 Multinomial classification, Softmax regression 여러 가지를 구분짓는 선들을 찾는 것 여기까지가 Hypothesis를 만든 것 계산을 통해 나온 값(= 확률)으로 a, b, c 중 어느 것인지 구분 가능하다. 확률 높은 것을 남기고 다 0으로 만들어 버리는 것은 one-hot encoding이라고도 한다. softmax 함수를 사용한다. 특징은 다음과 같다. - 계산된 확률은 0에서 1 사이 - 모든 확률의 합은 1 - logistic regression의 multinomial-classificat..

    Logistic Classification, Logistic Regression의 cost 함수

    Logistic Classification, Logistic Regression의 cost 함수

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. Classification - 스팸 메일 찾기: 스팸 or 스팸X - 페이스북 피드: Show or Hide => 0, 1 encoding - 스팸 메일 찾기: 스팸 (1) or 스팸X (0) - 페이스북 피드: Show (1) or Hide (0) Linear Regression으로 표현했을 때 애매한 경우 - 공부 시간 당 합격할지 예측 - 합격(1), 탈락(0) 데이터의 수, 종류에 따라 linear 선이 달라짐 50시간 공부한 데이터가 추가되었을 때는 기울기가 낮아지면서, 데이터를 대표하지 못하게 된다. 기존 가정 H(x) = Wx + b가 데이터를 잘 나타내주지 못함 => 새로운 함수를 사용해야 함 - 시그모이드 함수 그러나, 그냥 Si..

    TensorFlow로 파일에서 데이터 읽어오기

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. numpy 활용 + slicing import numpy as np b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) b[:, 1] # array([2, 6, 10]) b[-1] # array([9, 10, 11, 12]) b[-1, :] # array([9, 10, 11, 12]) b[-1, ...] # array([9, 10, 11, 12]) b[0:2, :] # array([[1, 2, 3, 4], # [5, 6, 7, 8]]) # 'data.csv' # EXAM1, EXAM2, EXAM3, FINAL # 73, 80, 75, 152 # 93, 88, 93, 185 # 89, 91, ..

    Multi-variable linear regression

    Multi-variable linear regression

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. 시험 점수 예측 Quiz 1 ( X1 ) Quiz 2 ( X2 ) Midterm 1 ( X3 ) Final ( Y ) 73 80 75 152 93 88 93 185 89 91 90 180 96 98 100 196 [instance 수, var 수] * [ ? = var수 , ? = Y ] = [instance 수, Y] - [n, 3] * [ ? = 3 , ? = 2 ] = [n, 2] 텐서플로우 코드 (버전 2.0 이상) import tensorflow as tf import numpy as np x_data = [[73., 80., 75.], [93., 88., 93.], [89., 91., 90.], [96., 98., 100.], [73...

    Linear Regression의 cost 최소화 알고리즘의 원리

    Linear Regression의 cost 최소화 알고리즘의 원리

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. cost가 최소화되는 W를 찾는 것! Gradient descent algorithm (경사하강법) - Minimize cost function - minimization 문제에 자주 사용되었음 - w1, w2, w3... 여러 개 값이 있을 때도 사용 가능 - 경사도를 따라서 1 step 이동 -> 미분을 사용해서 경사를 구할 수 있음 Convex function - 어느 점에 시작해도 항상 최솟값을 찾을 수 있음 텐서플로우 코드 (버전 2.0 이상) import numpy as np import tensorflow as tf import matplotlib.pyplot as plt x_train = [1, 2, 3, 4] y_train = [..

    Linear Regression

    Linear Regression

    모두를 위한 딥러닝 강의 시즌1을 듣고 복습한 내용입니다. 공부 시간에 따른 시험 성적 예측 - 가정 : H(x) = Wx + b x (hours) y (score) 10 90 9 80 3 50 2 30 Cost function (Loss function) 학습의 목표 : cost값을 가장 작게 하는 W와 b를 찾는 것! 참고) 차이에 제곱하는 이유? - 절댓값의 코드 상의 구현에서는 if 문이 필히 들어가게 되는데 매번 if문에 걸려서 체크를 하게되는 것보다 제곱을 하는 편이 빠르다. - 제곱을 하게되면 차이가 클수록 cost 값이 매우 커져서 w, b 텐서에 대한 변화가 많이 줄 수 있다. - 제곱값이 1보다 작으면 그 값이 더 작아지게 되는데 이를 통해서 gradient 값이 작아져서 정확도가 높아..