AI
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/mhXg3/btq8G5GhYXe/kDvaUvpu8N1dWxLQUrKzP0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 기본적으로 동그라미 안과 같은 Cell이 있다고 가정해보자. 그러면 어떤 값이 들어오면 weight 값 w와 곱이 됨. 그 다음에 bias 값을 합함. sum의 값이 어떤 값보다 작으면 0이라는 신호를 주고, 어떤 값보다 크게 되면 1이라는 신호를 주게 되는 구조임. Backpropagation에는 큰 문제가 있는데 layer가 깊어질수록 전달이 잘 안되어서 훈련의 정확도가 떨어지는 문제임.
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/biLmtU/btq8HG0l06O/ww0W2UhcyBa7UAdasKOg7k/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 머신러닝 모델이 얼마나 잘 동작하는지 확인하는 방법에 대해서 살펴볼 것. 우리가 갖고 있는 Training set을 모델에 넣어서 훈련을 시킨 다음에 다시 기존의 train data를 가지고 모델에 물어보는 형식으로 점검하게 된다면 ? 아마 100%의 확률로 답을 맞추게 될 것. 이 방법은 아주 좋지 못한 방법임. 좋은 방법은 우리가 가지고 있는 데이터를 7:3의 비율로 나누어서 7은 training용으로 두고, 3은 test로 두는 것임. 그런 다음에 test는 볼 수 없다고 가정하고 나서 train data를 가지고 훈련. 훈련을 마친 이후에 tes..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bKsbUy/btq8FzBzpiM/dOeSKBzUhld688niRCkzX0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 머신러닝 알고리즘을 실제로 사용하는데 있어서의 몇가지 팁들을 이야기할 것. cost function을 정의하고 cost function을 최소화하는 값을 찾기 위해 사용했던 Gradient descent 알고리즘. 경사를 타고 고 내려감. 이 때 알파라는 learning rate 값을 임의로 정의해줬었음. 이 learning rate의 값을 값을 잘 정하는 것이 중요함. 만일 이 값을 크게 정한다고 가정해보자. RL은 내려가는 스텝의 크기라고 볼 수 있음. 그렇기 때문에 아래의 그림처럼 내려가는 형태임. 또, 지나치게 클 경우에는 진행하다가 바깥으로 튕..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/my1vq/btq5wwtCHdm/u7PZKsckVcaPdqGDHRBXh1/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 앞서 배운 내용을 요약하자면... Linear regression이라는 것을 먼저 배웠는데, 여기서 만일 100, 200, -10 등의 큰 값이 주어지게 되면 binary classification에는 적합하지 않았었음. 그래서 이것을 하나의 z라고 두고 g(z)라는 함수에서 압축을 시켜서 0과 1의 사이의 값으로 반환시키는 것을 생각해냄. g(z)의 값이 아주 커져도 1보다는 커지지 않고, g(z)의 값이 아주 작아져도 0보다는 작아지지 않게 됨. 그래서 나오게 된 g(z) 함수를 sigmoid 함수라고 부르거나 logistic 함수라고 불렀음. Lo..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cfuoGr/btq5vOBi4Ld/lNDatOhn9jJmRYchaYr6O0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 우리가 앞서 살펴본 Cost function은 위와 같았음. 하지만 우리의 가설이 바뀌게 되면서 sigmoid function을 사용해서 출력값을 0과 1 사이로 조정해줬음. 또 그래프의 그림을 그려보면 위의 파란색 그래프과 같이 그릴 수 있는데, 오른쪽 그림에서 발생하는 한가지 문제점은 경사하강법을 실시하면 시작점이 어디냐에 따라서 끝나는 점이 달라질 수 있다는 것임. 이렇게 각각 달라지는 최종 점을 Local minimum 이라고 할 수 있는데, 우리가 찾고자 하는 점은 Global minimum임. global minimum을 찾기 위해서는 위와 ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/XdNpJ/btq5uTC3sal/ZfM7V7nCcwpchybEkMlHk1/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 앞선 강의 복습 이전에 배운 regression은 어떤 숫자를 예측하는 것이었음. 이번에 배울 classification은 binary classification이라고도 불리는데, 이는 이름에서 알 수 있듯 2개 중 하나를 고르는 것을 의미함. 이메일의 경우, Spam이냐 아니냐 Facebook의 경우 Show할 것인지 Hide할 것인지 등을 결정. 머신러닝에서는 이렇게 선택 두가지를 0과 1로 나타내기도 함. 그림과 같은 데이터가 있다고 가정해보자. 어떤 학생이 2시간을 공부했을 때는 fail(0)하지만, 일정 시간 이상 공부하면 pass(1)한다는 ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/btAFsP/btq5uvCr87Z/NnIHhUF2NK5djDM9NJHoe0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 앞선 예시에서는 1개의 input에 대한 regression을 살펴보았지만, 만일 여러 개의 input이 주어졌을 때는 어떻게 해야 하는가 ? 위와 같이 x1, x2, x3의 세개의 input 값이 있다고 가정해보자. 위의 데이터는 quiz 3개의 점수(x1, x2, x3)들을 가지고 final 점수인 Y값을 예측할 수 있을까? 를 나타내는 표임. 3개의 데이터가 주어지면, 아래의 식과 같이 3개의 값을 더해주면 됨. cost function도 마찬가지로, 3개의 데이터를 적용시켜주면 됨. cost function 자체의 의미가 예측한 값과 실제값의 차..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/yzN4q/btq5w7tfV3Y/CJ1d0bs4NbrV0rJGXDy7j0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 간단하게 표현하기 위해 hypothesis에서 b를 삭제하고 H(x)=Wx 라고 표현함. 이런 경우, cost function도 아래와 같이 조금 더 단순화시켜서 확인할 수 있음. 이 다음, cost(W)는 어떤 방식으로 생긴 것인지 구체적으로 확인해보자. 먼저, W가 1일 경우 cost(W)가 무엇인지 확인해보자. 그다음 W 값에 변화를 주어서 다른 값일 경우도 차례로 확인해보자. W가 0일 때를 계산해보면, cost(W)는 4.67, W가 1일 때를 계산해보면 cost(W)는 0이 나옴. 위와 같이 W값이 변화함에 따라서 cost(W)의 값들이 각각..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bmDHB3/btq5u4DO0ja/lxZ9MrVkyDbhQ6V41jpsA0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
출처 : 모두를 위한 머신러닝/딥러닝 https://hunkim.github.io/ml/ 모두를 위한 머신러닝/딥러닝 강의 hunkim.github.io 위와 같이 먼저 주어진 다른 학생들의 데이터를 가지고 학습을 시킴. 이 데이터는 training data라고 불림. 이 학습이 끝난 이후에 모델을 만들게 됨. 만일 학생이 시험을 보기 전 7시간동안 공부를 했는데 이 모델을 통해 대략 몇점 정도 받을 수 있을지를 예측해볼 수 있음. 이 모델을 linear regression이라고 하는데 아래에서 더 알아보자. 위와 같이 데이터셋을 간단하게 만들어서 살펴보자. 오른쪽의 그래프에서 x축은 x데이터들을, y축은 y데이터들을 나타낸다. linear한 모델이 존재할 것이다 라고 가정을 하고 세운 모델이 바로 li..