CNN - Backpropagation
2022. 1. 19. 19:43
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Backpropagation : 출력층부터 역순으로 Gradient를 전달하여 전체 Layer의 가중치를 업데이트하는 방식 미분과 편미분? Chain Rule (미분의 연쇄법칙) Chain Rule은 양파를 까는 것과 같다. Loss function의 편미분 의존 변수들의 순차적인 변화율 Chain Rule의 의의 Backpropagation 출력층부터 역순으로 Gradient를 전달하여 전체 Layer 의 가중치를 업데이트 하는 방식 미분과 편미분? 일반적인 미분을 생각해보자. 편미분은 뭐였더라? 편미분은 여러 변수에 대한 식이 있을 때, 다른 변수는 고정시켜 놓고 하나의 변수에 대해서 미분하는 것이었다. Chain ..
CNN - Deep Neural Network
2022. 1. 19. 16:27
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 심층 신경망(Deep Neural Network) : 은닉층이 포함된 다중 퍼셉트론 DNN의 구조 DNN Traning 개요 : Feed forward(weight update) → Backpropagation(weight update) → Iteration Deep Neural Network(심층 신경망) 지금까지 배운 퍼셉트론은 간단한 문제만 해결이 가능했다. 보다 복잡한 문제를 해결하려면 Hidden Layer 라는 것이 필요하다. 그냥 Layer를 여러개 쌓는 것이다. 아래 그림처럼 Hidden Layer가 포함된 기다란 퍼셉트론을 Deep Neural Network라고 한다. 입력층의 피쳐들이 100개면, 은닉..
CNN - SGD, Mini-Batch GD
2022. 1. 19. 15:51
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 SGD와 Mini-Batch GD SGD와 Mini-Batch GD의 비교 SGD(Stochastic Gradient Descent) 와 Mini-Batch GD Gradient Descent는 전체 학습데이터를 기반으로 Gradient Descent를 계산한다. 하지만 입력 데이터가 크고 레이어의 갯수가 많을수록 GD를 계산하는데에 많은 자원이 소모된다. 즉 시간이 오래 걸린다. Weight가 굉장히 많기 때문에 CPU로는 무리이다. 적은 weight는 상관없는데 일반적인 케이스는 그렇지 않다. 이를 극복하기 위한 여러가지 방법이 있는데, 그 중에서 많은 데이터 중 한 건만 가지고 weight 값을 업데이트 하는 방법..
CNN - 보스턴 주택가격 Perceptron 기반 학습
2022. 1. 14. 20:54
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 보스턴 주택 가격 데이터 보스턴 주택 가격 데이터를 통해 집값을 예측해보자. 먼저 보스턴 데이터를 불러오고 판다스를 이용해 데이터 프레임을 만든다. from sklearn.datasets import load_boston boston = load_boston() # dictionary type bostonDF = pd.DataFrame(boston.data, columns=boston.feature_names) # make boston dataFrame bostonDF['PRICE'] = boston.target # add target value print(bostonDF.shape) bostonDF.head() 이전 포스팅..
CNN - Gradient Descent
2022. 1. 14. 17:41
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Gradient Descent : weight 값을 없데이트 하면서 오류 값이 최소가 되는 weight 값을 구하는 방식 미분을 통해 Loss function(비용 함수)의 최솟값 찾기 Loss function(MSE)의 편미분 가중치(weight), 절편(bias) 업데이트 퍼셉트론 기반 선형회귀에서 Gradient Descent 적용하기 Gradient Descent(경사하강법) - 비용 최소화 하기 딥러닝의 목표인 최적의 w값은 Gradient Descent(경사하강법)으로 찾는다. 경사하강법은 점진적으로 하강할 수 있는 방향성으로, 반복적으로 계산하게 되면, 그때 오류 값이 최솟값이 되는 W 값을 구하는 방식이다. 아무..
CNN - Regression, RSS, MSE
2022. 1. 14. 16:56
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Regression : 여러개의 독립변수와 한개의 종속변수 간의 상관관계를 모델링하는 기법 단순선형회귀를 통한 회귀의 이해 RSS 기반의 회귀 오류 측정 MSE : 선형회귀의 비용 함수 Regression(회귀) Regression은 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 통칭한다. 아파트 가격이 형성되는 원리는 방의 개수, 크기, 학군, 역세권 등등이 있다. 이러한 여러개의 독립변수들을 고려해서 아파트 가격이 형성된다. 아파트 가격에 대한 식은 아래와 같이 나타낼 수 있다. 여기서 W(weight) 들은 독립변수 값에 영향을 미치는 Regression coefficients(회귀 계수)이다...
CNN - Perceptron
2022. 1. 14. 16:28
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 퍼셉트론 개요 퍼셉트론의 학습 : 예측값과 실제값의 차이가 최소가 되는 weight값을 찾는 과정 퍼셉트론의 학습 예시 퍼셉트론의 학습 메커니즘 퍼셉트론 개요 퍼셉트론이란 것은 가장 단순한 형태의 신경망이다. 우리 몸에 가지고 있는 신경계를 본떠서 만들었다. 자극을 받아서 신경계를 따라 호르몬을 분비하는 것과 똑같은 원리이다. 입력이 들어오면 그에 맞는 출력을 낸다. 오른쪽 그림의 신경계를 예를 들어 설명하자면 자극(입력 피쳐들)과 자극의 중첩(가중치가 곱해진 값)이 미엘린 수초들(activation function)을 통과해서 역치(일정 임계치 값)를 넘어가면 1로 나오고, 역치(임계점) 아래라면 0으로 출력이 된다..
Tensor 에 대한 이해
2021. 6. 9. 11:55
🖼 Computer Vision/CNN
컴파일러 vs 인터프리터 방식 ▪ 컴파일러 방식 프로그램 전체를 번역한 다음 한꺼번에 실행 실행이 빠른 장점 C, C++ 등 ▪ 인터프리터 방식 한라인씩번역하고실행하는일을순차적으로수행 일부 코드만 선택하여 실행하는 일이 가능한 장점, 이 장점을 잘 활용하길 권유함 (스파이더에서는 실행하고자 하는 코드를 마우스로 선택한 다음 [F9] 키를 누름) 기초 라이브러리 ▪ 넘파이(Numpy): 다차원 배열 지원 ▪ 맷플롯립(Matplotlib): 데이터 시각화 인공지능 라이브러리 ▪ 사이킷런(Scikit-learn): 고전적인 기계 학습 지원 ▪ 텐서플로(TensorFlow): 딥러닝 지원 ▪ 케라스(Keras): 텐서플로를 한 단계 추상화한 라이브러리 ▪ 파이토치(PyTorch): 딥러닝 라이브러리 딥러닝에서 ..
cs231n 4강 - Backpropagation
2021. 4. 12. 21:49
🖼 Computer Vision/CNN
Optimization은 Loss를 최소화 하는 과정이다. Loss가 최소가 되어야지만 좋은 prediction이 가능하다. 일반적으로 Gradient를 구하는 방법은 Numerical한 방법이다. 그러나 속도가 느리고 정확하지 않다. 따라서 해석적 방법인 Analytic 한 방법을 사용한다. 보통 gradient check를 할 때에는 Numerical gradient를 사용한다. x에 가중치(W)를 곱하여 score값을 function에 넣으면 loss를 얻는다. 그리고 그것을 regularization loss와 더해주는 것을 total loss라고 한다. 이런 과정을 Computational graph라고 한다. 예를 들어서 하나하나의 모듈 별로 계산을 해나가는 방식을 학습해보자. 간단한 함수인 ..