Computer Science/Machine learning
-
선형대수학에서 배운 Linearity를 만족하기 위해서는 additivity, scalar multiplication이 성립해야 한다. 즉, $f(ax_1 + bx_2) = af(x_1) + bf(x_2)$를 만족해야 한다. 그런데, ML에서 다루는 Polynomial regression의 경우는 2가지 성질을 만족하지 않는 것으로 보인다. 하지만, 잘생각해보면 중요한 것은 X와 y 사이의 대응관계이지 X가 liearity를 만족하는지 여부가 중요한 것이 아니다. 즉, 관계를 매개하는 변수가 B 즉 가중치가 변수라고 할 수 있다. 해당 변수에 대해서는 Linearity를 만족하고 있으므로 linear라고 할 수 있다. 바라보는 변수의 시각이 Linear mathematics와 ML이 조금 상이하기 때문에..
Linearity선형대수학에서 배운 Linearity를 만족하기 위해서는 additivity, scalar multiplication이 성립해야 한다. 즉, $f(ax_1 + bx_2) = af(x_1) + bf(x_2)$를 만족해야 한다. 그런데, ML에서 다루는 Polynomial regression의 경우는 2가지 성질을 만족하지 않는 것으로 보인다. 하지만, 잘생각해보면 중요한 것은 X와 y 사이의 대응관계이지 X가 liearity를 만족하는지 여부가 중요한 것이 아니다. 즉, 관계를 매개하는 변수가 B 즉 가중치가 변수라고 할 수 있다. 해당 변수에 대해서는 Linearity를 만족하고 있으므로 linear라고 할 수 있다. 바라보는 변수의 시각이 Linear mathematics와 ML이 조금 상이하기 때문에..
2021.07.20 -
Linear equation Linear equation은 $$\hat{y} = \theta_0 + \theta_1x_1 + \theta_2x_2+ \cdots +\theta_nx_n$$로 나타낼 수 있다. (단, $\hat{y}$는 예측값, $n$은 특성의 수, $x_i$는 i번재 특성값, $\theta_j$는 j번째 모델 파라미터) 수식이 표현된 형태를 잘 보면, 2개의 vector의 dot product형태로 표현할 수 있음을 쉽게 관찰할 수 있다. 따라서 조금 더 간단하게 해당 수식을 표현하면 다음과 같다. $$\hat{y} = h_{\theta}(x) = \theta \cdot x$$ 그런데, $\theta$와 $x$는 모두 열벡터끼리의 dot product이므로 Linear mathematic..
[Machine learning] 6. Proof of normal equationLinear equation Linear equation은 $$\hat{y} = \theta_0 + \theta_1x_1 + \theta_2x_2+ \cdots +\theta_nx_n$$로 나타낼 수 있다. (단, $\hat{y}$는 예측값, $n$은 특성의 수, $x_i$는 i번재 특성값, $\theta_j$는 j번째 모델 파라미터) 수식이 표현된 형태를 잘 보면, 2개의 vector의 dot product형태로 표현할 수 있음을 쉽게 관찰할 수 있다. 따라서 조금 더 간단하게 해당 수식을 표현하면 다음과 같다. $$\hat{y} = h_{\theta}(x) = \theta \cdot x$$ 그런데, $\theta$와 $x$는 모두 열벡터끼리의 dot product이므로 Linear mathematic..
2021.05.27 -
Linear Regression 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘이다. KNN의 경우 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있었는데, Linear Regression의 경우 만족하는 직선을 학습하는 것이므로 해당 문제를 해결할 수 있다. 사용 방법은 다음과 같다. from sklearn.linear_model import LinearRegression # Fitting lr = LinearRegression() lr.fit(train_input, train_target) # Model evaluation target_score = lr.score(train_input, train_target) test_score = lr.score(test_input, tes..
[Machine learning] 5. RegressionLinear Regression 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘이다. KNN의 경우 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있었는데, Linear Regression의 경우 만족하는 직선을 학습하는 것이므로 해당 문제를 해결할 수 있다. 사용 방법은 다음과 같다. from sklearn.linear_model import LinearRegression # Fitting lr = LinearRegression() lr.fit(train_input, train_target) # Model evaluation target_score = lr.score(train_input, train_target) test_score = lr.score(test_input, tes..
2021.05.23 -
Definition, pros and cons 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 알고리즘이다. 이 알고리즘을 사용하기 위해서는 가장 가까운 직선거리에 어떠한 데이터가 있는지 살펴주면 되기에 간단하다. 다만 직선 거리를 비교하기 위해서 데이터를 모두 다 가지고 있어야 하는데, 데이터가 아주 많은 경우에는 공간복잡도나 시간복잡도가 많이 커진다는 단점이 존재한다. 추가적으로 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. (특히 회귀의 경우) Standardize 정의에서 살펴볼 수 있는 것처럼, 데이터 사이의 거리를 기준으로 판단하는 알고리즘이기에 스케일이 다르면 문제가 발생할 수 있다. 따라서 KNN을 사용하기 위해..
[Machine learning] 4. KNN(k-Nearest-Neighbors)Definition, pros and cons 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 알고리즘이다. 이 알고리즘을 사용하기 위해서는 가장 가까운 직선거리에 어떠한 데이터가 있는지 살펴주면 되기에 간단하다. 다만 직선 거리를 비교하기 위해서 데이터를 모두 다 가지고 있어야 하는데, 데이터가 아주 많은 경우에는 공간복잡도나 시간복잡도가 많이 커진다는 단점이 존재한다. 추가적으로 새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다. (특히 회귀의 경우) Standardize 정의에서 살펴볼 수 있는 것처럼, 데이터 사이의 거리를 기준으로 판단하는 알고리즘이기에 스케일이 다르면 문제가 발생할 수 있다. 따라서 KNN을 사용하기 위해..
2021.05.21 -
Supervised learning and Unsupervised learning 앞 포스팅에서 살펴본 것처럼, 지도 학습(Supervised learning)과 비지도 학습(Unsupervised learning)은 레이블 여부에 따라 구분할 수 있었다. 이 중 지도 학습의 경우, 훈련하기 위해 데이터와 정답이 필요한데 이를 각각 Input, Target이라고 하고 이 둘을 합쳐 Training data라 부른다. 주어진 Input에는 여러 가지 Feature이 존재한다. Split train set and test set(+ Sampling bias) 머신러닝 알고리즘의 성능을 평가하기 위해서는 훈련 목적으로 쓰는 데이터와 평가 목적으로 쓰는 데이터가 구분되어야 한다. 전자를 Train set, 후자..
[Machine learning] 3. PreprocessingSupervised learning and Unsupervised learning 앞 포스팅에서 살펴본 것처럼, 지도 학습(Supervised learning)과 비지도 학습(Unsupervised learning)은 레이블 여부에 따라 구분할 수 있었다. 이 중 지도 학습의 경우, 훈련하기 위해 데이터와 정답이 필요한데 이를 각각 Input, Target이라고 하고 이 둘을 합쳐 Training data라 부른다. 주어진 Input에는 여러 가지 Feature이 존재한다. Split train set and test set(+ Sampling bias) 머신러닝 알고리즘의 성능을 평가하기 위해서는 훈련 목적으로 쓰는 데이터와 평가 목적으로 쓰는 데이터가 구분되어야 한다. 전자를 Train set, 후자..
2021.05.21 -
Definition 가장 대표적으로 알려진 머신러닝의 정의는 다음과 같다. 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다. 예를 들어 스팸 메일을 구분하는 머신러닝 프로그램을 제작했다고 하자. 위의 정의에 따르면 훈련 데이터(스팸 여부를 알고 있는 데이터)는 E에 해당하고, T는 스팸 여부를 판단하는 행위에 해당한다. P는 직접 정의하기 나름이지만 정확도 정도로 판단할 수 있다. When we use machine learning? 기존의 프로그래밍 방식은 해당 경향성을 코더가 발견하고, 이를 코드에 반영시키는 방식으로 진행되었다. 반면, 머신러닝 기법으로 이 문제를 접근하..
[Machine learning] 2. Introduce machine learningDefinition 가장 대표적으로 알려진 머신러닝의 정의는 다음과 같다. 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다. 예를 들어 스팸 메일을 구분하는 머신러닝 프로그램을 제작했다고 하자. 위의 정의에 따르면 훈련 데이터(스팸 여부를 알고 있는 데이터)는 E에 해당하고, T는 스팸 여부를 판단하는 행위에 해당한다. P는 직접 정의하기 나름이지만 정확도 정도로 판단할 수 있다. When we use machine learning? 기존의 프로그래밍 방식은 해당 경향성을 코더가 발견하고, 이를 코드에 반영시키는 방식으로 진행되었다. 반면, 머신러닝 기법으로 이 문제를 접근하..
2021.05.21 -
What is Artificial intelligence 인공지능(Artificial intelligence)는 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술이다. 흔히 영화 속에서 난오는 인공지능은 인공일반지능(Artificial general intelligence) 혹은 강인공지능(Strong AI)이라고 부른다. 이는 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템을 의미한다. 하지만, 일반적으로 현실에서 우리가 마주하고 있는 인공지능은 약인공지능(Week AI)라고 부른다. 즉, 사회 각 분야에서 사람의 일을 보조하는 역할을 수행하는 것에 멈추고 있다. 일반인공지능이 실현되는 시기에 대해서는 단정지을 수는 없지만, 현재 상황에서 실현 가능성은 충분하다고 평가받고 있..
[Machine learning] 1. AI, ML and DLWhat is Artificial intelligence 인공지능(Artificial intelligence)는 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술이다. 흔히 영화 속에서 난오는 인공지능은 인공일반지능(Artificial general intelligence) 혹은 강인공지능(Strong AI)이라고 부른다. 이는 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템을 의미한다. 하지만, 일반적으로 현실에서 우리가 마주하고 있는 인공지능은 약인공지능(Week AI)라고 부른다. 즉, 사회 각 분야에서 사람의 일을 보조하는 역할을 수행하는 것에 멈추고 있다. 일반인공지능이 실현되는 시기에 대해서는 단정지을 수는 없지만, 현재 상황에서 실현 가능성은 충분하다고 평가받고 있..
2021.05.21