
이번에는 신경망 구현에 대해 배우겠다. 신경망 네트워크 개요우리는 이전에 로지스틱 회귀 모델이 아래 계산 그래프와 일치한다는 것도 봤었다. 특성 \(x\) 와 변수\(w\), \(b\)를 입력하면 \(z\) 를 계산하는 거다.\(z\)는 \( \hat{y}\)라고도 쓰는 \(a\)를 계산하는데 쓴다.마지막으로 손실함수인 \(L\)을 계산한다. 신경망은 시그모이드 유닛을 쌓아서 아래와 같이 만들 수 있다. 특성인 \(x\)와 변수 \(W\)와 \(b\)를 입력하면, \(z^{[1]}\)을 계산한다.\(z^{[1]}\)을 계산한 뒤, \(a^{[1]}\)을 계산한다. 그 후에 다른 선형 식을 사용하여 \(z^{[2]}\)를 계산한다.다음엔 \( \hat{y}\)라고도 쓸 수 있는 신경망의 최종 출력값인 \..

Linear Regression Model Part 1회귀 모델은 지도학습의 한 종류로, 데이터 세트에 모든 정답이 나와있으며, 숫자를 결과로 예측한다.주택의 크기로 가격을 예측하는 모델이 회귀 모델의 한 예시이다.여기서, 선형 회귀란 쉽게 데이터에 직선을 맞추는 것을 의미한다. 회귀 모델과 대조적으로, 분류 모델(classfication model)은 범주를 예측한다. 집 값 예측을 위한 training set을 가져온다고 할 때,\(x\) = 입력 값의 변수 (독립변수)\(y\) = 출력값의 변수 (종속변수)\(m\) = training examples의 총 개수\((x,y)\) = 하나의 training example\((x^{(i)},y^{(i)})\) = i번째 training exampleL..

이번에는 로지스틱 회귀를 벡터화하여 전체 훈련 세트에 대한 경사하강법의 반복문에서for문을 사용하지 않고 구현하는 방법에 대해서 알아보자. m개의 훈련 샘플이 있을 때, 훈련샘플들을 예측하려면 아래 값들을 계산해야 한다. 즉, m개의 훈련 샘플이 있으니, for문을 이용해 i의 값을 m까지 변화시키며 계산해야 한다. 하지만 계산의 효율성을 증가시키기 위해 벡터를 이용하면 다음과 같이 계산할 수 있다. 위의 코드에서 (1,m) 크기의 행렬과 상수 b를 더하기에 오류가 날 것 같지만, 파이썬이 자동적으로 상수를 (1,m) 크기의 행렬로 브로드캐스팅 해주기에 오류가 발생하지 않습니다. 이제, 벡터화를 통해 m개의 전체 훈련 샘플에 대한 경사 계산을 해보겠습니다.우리는 이전에 공부하면서, 경사를..

벡터화는 코드에서 for문을 없애는 일종의 예술과 같다. for문을 사용하여 큰 데이터 세트를 학습시킨다면, 코드 실행시간이 길어지고, 결과를 내기까지 오래 기다려야 한다. 딥러닝 시대에서 벡터화할 수 있는 능력은 중요한 기술이다. 그럼 벡터화에 대해서 알아보자. 벡터화(vectorization)란?로지스틱 회귀를 계산한다고 하자. 벡터화 되지 않은 구현 -> \( w^{T} x \) 를 계산하기 위해, for문을 이용해 \(n_{x}\) 만큼 계산해야한다.벡터화 구현 -> numpy의 내장함수인 np.dot() 사용으로 굉장히 빠르게 계산할 수 있다. 신경망이나 로지스틱 회귀를 프로그래밍할 때 기억해야 할 것은 가능한 한 for문을 사용하지 않는 것이다.필요한 값을 계산할 때 내장함수나 다른 방법을..

로지스틱 회귀의 경사하강법에 대해서 알아보자 로지스틱 회귀의 경사하강법 - 단일 훈련 샘플 다음은 로지스틱 회귀이다. a : 로지스틱 회귀의 출력 값y : 실제 값\( L(a,y) \) : 하나의 샘플에 대한 손실 함수 아래는 로지스틱 회귀를 계산 그래프로 나타낸 것이다.이 예제는 특성이 \(x_{1}\)과 \(x_{2}\) 2개이다. 여기서 구하고자 하는 것은 이 손실 함수의 도함수이다. 역방향으로 가서, \(da\), \(dz\), \(dw_{1}\), \(dw_{2}\), \(db\)를 구해보자. 이렇게 계산하고 나면, 다음과 같이 갱신한다. 도함수를 계산하고, 단일 샘플에 대한 로지스틱 회귀의 경사하강법을 구현하는 방법을 알아보았다. 하지만, 로지스틱 회귀 모델을 훈련시키려면 단일 샘플이 아..

이번에는 미적분과 도함수에 대한 직관을 얻을 수 있게 공부해보자. 미분 (Derivatives) 그림에서 초록색 삼각형 부분을 보면, a를 오른쪽으로 0.001만큼 밀었을 때 f(a)는 0.003만큼 증가한다즉, f가 올라간 정도는 a를 오른쪽으로 민 정도보다 3배 많다.> a=2에서 함수 f(a)의 기울기, 도함수는 3이다. 마찬가지로, a가 5라고 하면 f(a)는 15이다.a를 오른쪽으로 살짝 밀어서 0.001만큼 밀면 f(a)는 15.003이 된다.이번에도 a를 오른쪽으로 0.001만큼 움직이면 f(a)는 그보다 3배가 증가한다. > a=5에서 함수 f(a)의 기울기, 도함수는 3이다. 즉, 도함수(=어떤 함수의 기울기)란 변수 a를 조금만 변화했을 때, 함수 f(a) 가 얼만큼 변하는지는 측정하..

지난 강의에서는 로지스틱 회귀 모델과 단일 훈련 샘플이 얼마나 잘 작동하는 지 측정하는 손실함수, 그리고 매개변수 \(w\)와 \(b\)가 훈련 세트 전체를 얼마나 잘 예측하는지 측정하는 비용함수에 대해서 알아봤다. 이제 경사하강법 알고리즘을 사용해 매개변수 \(w\)와 \(b\)를 훈련 세트에 학습시키는 방법을 알아보자.경사하강법 (Gradient descent)이전 시간의 비용함수가 전체 데이터셋의 예측이 얼마나 잘 평가되었는지 보는 것이라면,경사하강법은 이를 가능케하는 파라미터 \(w\)와 \(b\)를 찾아내는 방법 중 하나이다. 따라서, 매개변수 \(w\)와 \(b\)를 알아내기 위해서는 비용함수 \(J(w, b)\)를 가장 작게 만드는 \(w\)와 \(b\)를 찾아냐 할 것이다. 우선, 비용..

신경망에서 학습하는 방법은 정방향 전파와 역전파가 있다. 로지스틱 분류로 신경망이 왜 전방향 전파와 역전파로 구성되어 있는지 직관을 얻어보자. 이진 분류 (Binary Classification) 이진 분류란 그렇다와 아니다 2가지로 분류하는 것이다. 이때 결과가 "그렇다" 이면 1로 표현하고 "아니다"이면 0으로 표현한다. ex) 고양이다 (1) / 고양이가 아니다 (0). \(x\) : 입력 특성\(y\) : 주어진 입력 특성 \(x\) 에 해당하는 실제 값\( (x,y) \) : 한쌍의 훈련 샘플\(m\) : 훈련 샘플의 갯수\( n_{x} \) : \(x\)에 대한 차원 신경망을 구현할 때, 여러 훈련 샘플에 관한 데이터를 각각의 열로 놓는 것이 유용하다.로지스틱 회귀 (Logistic ..
- Total
- Today
- Yesterday
- numpy 배열 생성
- action value function
- omp: error #15
- 강의노트 정리
- 비용함수
- Sort
- 숏코딩
- 백준
- adrew ng 머신러닝 강의
- Andrew Ng
- **kwargs
- 경사하강법
- 파이썬
- baekjoon
- state value function
- 로지스틱 회귀
- python
- policy function
- computation graph
- 11870
- 앤드류응
- *
- numpy 배열 속성
- sorted
- 강화학습
- 딥러닝
- *args
- **
- 손실함수
- NumPy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |