일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- Redux
- NCP
- 블레이드 템플릿
- php
- Machine Learning
- nginx
- AWS
- fastapi
- CentOS
- python
- Babel
- Redis
- Switch
- webpack
- rabbitmq
- mariadb
- laravel
- SQL
- linux
- Backbone.js
- Node
- Go
- deep learning
- 기초 수학
- phpredis
- javascript
- React
- docker
- For
- Today
- Total
목록기초 수학 (21)
개발일기
데이터 정규화(Data Normalization)머신 러닝에서 데이터를 학습시키기 전에 데이터들을 정규화(Normalization)해야 한다. 보통 데이터는 특성마다 다른 수의 범위를 가지고 있다. A특성에서는 수의 범위가 0~1인 반면에 B특성에는 수의 범위가 20 ~ 3000 이런 식으로 이뤄질 수 있다. 데이터 크기의 불균형으로 인해 특성별 우선 순위가 잘못된 방향으로 설정될 수 있다. 이를 방지하고 모델을 제대로 학습시키기 위해 학습 전 데이터 정규화를 진행한다. 로 사용하는 정규화는 Min-Max Normalization 또는 Z-Score Normalization이 있다.Min-Max Normalization: 특성 범위 내의 데이터 중에서 가장 작은 수는 0으로 변환하고 가장 큰 수는 1로 ..
ROC(Receiver Operating Characteristic) CurveROC(Receiver Operating Characteristic) Curve는 이진 분류 모델의 성능을 평가하는데 사용되며 모델의 각 임계값(Threshold)에 따른 성능을 시각적으로 나타내는데 사용된다. 이전 망고 예측 예제를 예시로 아래의 표를 살펴보자. 0은 사진 속 과일이 망고가 아닌 경우고 1은 사진 속 과일이 망고인 경우를 의미한다. y $ \hat y $ 0.3 Threshold 0.5 Threshold 0.7 Threshold 00.30(True Negative)0(True Negative)0(True Negative)10.51(True Positive)0(False Negative)0(False N..
혼동 행렬(The Confusion Matrix)는 이진 분류 모델의 성능을 평가하는데 사용되며 예측 결과와 실제 결과의 차이를 비교하여 시각적으로 표현한 2x2 행렬을 의미한다. 혼동 행렬이라 불리는 이유는 알고리즘의 혼동으로 인해 오류를 시각적으로 보여주기 때문에 혼동 행렬이라 불린다. actual y 1actual y 0predicted y 1True PositiveFalse Positivepredicted y 0False NegativeTrue Negative혼동 행렬은 위와 같이 표현하며 가로는 예측값을 나타내며 세로는 실제값을 나타낸다. 망고를 예시로 들면 사진 속의 과일이 망고가 맞으면 1이고 망고가 아니면 0이다. 여기서 예측값은 머신 러닝 알고리즘의 예측값을 의미한다. 사진 속 과일을 예..
머신 러닝에서 적분(Integration)이란?적분은 함수의 넓이, 부피, 길이 등을 계산하는데 사용되는 개념으로 머신 러닝에서는 함수 그래프의 곡선 아래 영역에 대한 내용을 다룬다. 머신 러닝에서 적분은 ROC라 불리는 곡선 아래 영역을 구할 때 사용하거나 확률 변수의 기댓값을 구할 때 사용된다.import matplotlib.pyplot as pltimport numpy as npdef f(x): return x**2 +2*x + 1 # x^2 + 2x + 1x = np.linspace(0, 10)y = f(x)fig, ax = plt.subplots()ax.plot(x, y)ax.set_ylim(bottom=0) # 0보다 작은 y축 요소는 표시하지 않음ax.set_xlim(right=10) ..
선형 회귀 모델에 적용편미분을 활용하면 다변수 함수의 편미분 값 계산이 가능하다는 것을 알 수 있다. 이를 선형 회귀 모델에 적용시켜 경사도 벡터를 구한 후, 이를 활용하여 비용 함수를 최소화시킬 수 있다. 비용 함수를 최소화시키기 위해 사용하는 최적화 알고리즘으로 경사 하강법을 주로 사용하며 이를 통해 해당 모델에 주어진 m과 b 파라미터의 적합한 값을 구해낼 수 있다. 비용 함수(Cost Function)먼저 $ y = mx + b $ 라는 함수에서 $ x $ 를 입력 변수, $ y $ 를 출력 변수라면 $ x $ 값의 변화에 따라 $ y $ 값이 종속되어 결정된다. 이에 $ x $를 독립 변수, $ y $ 를 종속 변수라 칭한다. 독립 변수 $ x $ 가 1일 때, 종속 변수 $ y $ 가 5라면 ..
편미분에 연쇄 법칙을 적용하여 다변수 함수의 편미분값을 구하는 과정을 수식을 통해 알아보자. 먼저 $ y = f(u, v) $ 라는 함수가 있을 때 함수를 구성하는 u, v가 $ u = g(x, z) $, $ v = h(x, z) $ 함수로 존재한다고 가정하자. 연쇄 법칙을 통해 y에 대한 x 편미분 값을 구하는 과정은 순차적으로 수식을 나열하여 계산 과정을 파악할 수 있다.y에 대한 x의 편미분 값을 계산 과정을 순차적으로 나열하면 다음과 같다.y에 대한 u 편미분 값을 구한다.u에 대한 x 편미분 값을 구한다.이에 추가적으로 y에 대한 v 편미분 값을 구한다.v에 대한 x 편미분 값을 구한다.함수 u와 v 모두 x라는 변수를 담고 있기에 두 함수 모두를 거치는 연쇄 법칙이 작용한다. 이를 수식으로 나..
편미분(Partial Derivative)에 대한 정의지금껏 봐온 함수는 $ \frac{\mathrm{d} y}{\mathrm{d} x} = x^2 - 3x + 6 $ 와 같이 $ x $ 라는 변수 하나로 y의 미분값이 결정되는 일변수 함수였다. 하지만 머신 러닝에서 주로 사용되는 함수는 다변수 함수이다. 다변수 함수는 $ z = x^2y^2 + 7xy - 3x + 6 $와 같이 여러 개의 독립 변수를 가지고 있는 함수를 의미한다. 이와같이 $ x $, $ y $ 라는 여러 개의 독립 변수를 가진 다변수 함수를 미분하기 위해 편미분을 사용한다. 3D그래프로 확인하기$ z = x^2 - y^2 $ 라는 다변수 함수는 $ x $, $ y $라는 변수를 가지고 있으며 이 변수들은 결과값 z에 영향을 주는 변수..
자동 미분(Auto Differentiation)자동 미분은 함수의 미분을 자동으로 계산하는 기법을 의미한다. 쉽게 말하면 Tensorflow, Pytorch와 같이 머신러닝 라이브러리를 통해 함수의 기울기(미분값)을 계산하는것을 의미한다. 자동 미분은 $ \displaystyle \lim_{ x\to 0}\frac{f(x+h) - f(x)}{h} $ 와 같이 미세한 차이를 바탕으로 미분값을 추정하는 수치 미분보다 정확하며 복잡한 함수에서도 편리하게 미분값을 계산할 수 있다.수치 미분: 순방향으로 계산이 이루어진다. 입력 변수의 변화량을 바탕으로 출력값을 계산해 나간다.자동 미분: 수치 미분과 반대로 역방향으로 계산이 이루어진다. 순방향과는 반대의 개념으로 출력값을 바탕으로 입력 변수의 변화량을 계산해 ..