본문 바로가기

모두를위한딥러닝

(10)
[정리] 모두를 위한 딥러닝 07 - 실전 연습 및 팁 by 김성훈 [정리] 모두를 위한 딥러닝 07 - 실전 연습 및 팁 by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/ Lec = 강의 / Lab = 실습 러닝 레이트 learning rate 가 너무 크면 아래 그림과 같이 예측값이 아래로 수렴하는게 아니고, 밖으로 나가버리는 경우가 생깁니다. 반대로 러닝 레이트 learning rate 가 너무 작으면 좋은 예측을 못하거나 시간이 너무 오래 걸립니다. 그리고, 2차 함수를 3차원처럼 등고선으로 나타낼 수도 있습니다. 만약 x1, x2 두 값이 입력값인데, 차이가 너무 크다면 납작한 원이 될 수 있습니다. 이렇게 되면 데이터를 함수에 넣기 전에 먼저 적절한 처리를 해야 합니다. 이렇게 넓은 범위를 포함하고 있는 입력값이 있다면 이를 적절..
[정리] 모두를 위한 딥러닝 08 - 딥러닝 개념 by 김성훈 [정리] 모두를 위한 딥러닝 08 - 딥러닝 개념 by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/Lec = 강의 / Lab = 실습 사람의 뇌를 연구해보니 작은 뉴런들이 신호를 주고 받는걸로 밝혀졌는데,이 뉴런 하나는 아주 단순한 신호를 전달하지만, 이게 합해지면서 바로 생각이라는게 만들어진다는 것이었습니다. "이를 기계에도 적용해서 학습시키면 좋은 결과가 나오지 않을까" 라는 생각에서 CNN (Convolutional Neural Networks) 이 생겨났습니다. 그리고, 리니어 리그레션만으로는 XOR 를 풀 수 없습니다. 이런 문제를 Convolutional Neural Networks (CNN) 기법으로 풀 수 있습니다. MNIST = 글자 이미지를 분석해서 어떤 ..
[정리] 모두를 위한 딥러닝 06 - Softmax Regression [정리] 모두를 위한 딥러닝 06 - Softmax Regression (Multinomial Logistic Regression) by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/Lec = 강의 / Lab = 실습 결과값이 A, B, C 중에 하나인 경우, 지금까지 알아본 내용(리니어 리그리션)으로는 불가능합니다.시그모이드 개념과 비슷하긴 하지만, 이 함수는 둘 중 하나로 수렴하기 때문에,결과가 3개 넘을때에는 이중에서 하나로 수렴할 수 있는 방법이 없습니다. A, B, C 가 나올 확률을 구해서 가장 높은거 하나만 1, 나머지는 0 으로 만들면 됩니다.A, B, C 가 나올 확률의 합은 1 이 됩니다. 입력 X, 결과 Y 모두 행렬을 이용하는데, 이 개념이 소프트맥스 s..
[정리] 모두를 위한 딥러닝 10 - 렐루 ReLU & 초기값 정하기 by 김성훈 [정리] 모두를 위한 딥러닝 10 - ReLU & 초기값 정하기 by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/ Lec = 강의 / Lab = 실습 시그모이드 결과값은 0
[정리] 모두를 위한 딥러닝 09 - XOR 풀기 by 김성훈 [정리] 모두를 위한 딥러닝 09 - XOR 풀기 by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/ Lec = 강의 / Lab = 실습 XOR 게이트는 입력값 두개를 받아서, 두개가 다르면 (1,0) 또는 (0,1) 이런 형태이면 1 참값을 리턴하는 함수입니다. XOR 게이트는 한개의 선형 리니어 함수로는 풀 수 없고, 여러개를 이용하면 풀 수 있습니다. 이렇게 3개로 연결해서 만들면 됩니다. 여기에서는 w1, b1 값이 주어졌는데, 이 값 말고도 다른 값도 찾을 수 있습니다. 이 슬라이드에서 5, -8 / -7, 3 / -11, 6 이런 값들이 이미 주어졌지만, 이 값들은 학습을 통해 찾아야 합니다. 이를 위해 백 프로파게이션 기법을 이용합니다. 출력으로 나온 에러 los..
[정리] 모두를 위한 딥러닝 05 - Logistic Classification [정리] 모두를 위한 딥러닝 05 - Logistic Classification by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/Lec = 강의 / Lab = 실습 지금까지는 결과값 Y 가 숫자였는데, 이번 강의에서는 0 또는 1 이렇게 둘 중 하나인 경우를 살펴본다.병에 걸렸는지 여부, 시험을 통화할 수 있는지 여부 등에 이용할 수 있다. 이를 나타내려면 단순히 직선 그래프로는 안되고 0 또는 1 에 수렴해야 하는데, 이때 사용되는 함수는 아래와 같다. 시그모이드 (하이퍼볼릭 탄젠트 tanh 파란색 점선) 함수로 나타낼 수 있다. 로그 함수로 나타낼 수도 있다.여기에서 빨간색이 X 축이라면 Y 값은 0 또는 1 에 수렴하는 그래프가 된다. 오 ~ 이를 파이썬으로 구현하면 ..
[정리] 모두를 위한 딥러닝 04 - Multi-Variable Linear Regression [정리] 모두를 위한 딥러닝 04 - Multi-Variable Linear Regression by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/Lec = 강의 / Lab = 실습 x 가 여러개인 경우, 행렬을 이용해서 Y 를 예측하는 방법. 이를 파이썬으로 구현하면 아래와 같다. import tensorflow as tfx_data = [[73., 80., 75.], [93., 88., 93.], [89., 91., 90.], [96., 98., 100.], [73., 66., 70.]]y_data = [[152.], [185.], [180.], [196.], [142.]]# placeholders for a tensor that will be always fed.X = ..
[정리] 모두를 위한 딥러닝 03 - cost 줄이기 [정리] 모두를 위한 딥러닝 03 - cost 줄이기 by 김성훈 강의 웹사이트 : http://hunkim.github.io/ml/Lec = 강의 / Lab = 실습 W=2 일때에도 계산해보자. 이걸 2차원 그래프로 나타내면 아래와 같다.W=1 이 정답이다. (Y = 1 * X) 이를 3차원 그래프로 나타내면 아래와 같다. W=1 인 값은 미분했을때 (접선의 기울기) 0 이 되는 곳이다. 이걸 파이썬을 이용해서 구현하면 아래와 같다. 초기값을 5 로 주고, 0.1 씩 곡선을 타고 내려가는데 GradientDescentOptimizer 라는 최적화 함수를 이용하면 된다.오, 6번만에 정답을 찾았다. 다른 예로, 초기값을 -3 으로 주고, 0.1 씩 곡선을 타고 내려간다.역시 6번만에 정답을 찾았다. 소스..