일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 머신러닝 강좌
- 머신러닝 강의
- 파이썬강의
- 비지도학습
- 선형회귀
- 딥러닝공부
- 자바시작하기
- supervised learning
- 지도학습
- java
- 자바강좌
- python강좌
- Python강의
- C언어
- 자바
- 경사하강법
- feature scaling
- c언어 오목
- 인공지능
- acmicpc.net
- Gradient Descent
- 효묘블로그
- 파이썬강좌
- 머신러닝공부
- 딥러닝
- 머신러닝
- JAVA강좌
- 백준 알고리즘
- unsupervised learning
- 비용함수
- Today
- Total
목록컴퓨터/머신러닝 (14)
컴공과컴맹효묘의블로그
알고리즘 여기 들어가셔서 보시면 됩니다. #주의 : 파이썬 잘 안써봐서 코드가 조금 더럽습니다. c언어 스타일로 코딩했습니다. 사용한 라이브러리 numpy # 수학적인 데이터를 다루는 기본적인 라이브러리입니다. copy # deep copy를 편하게 하기위한 라이브러리입니다. matplotlib # 데이터를 시각화 하기 위한 라이브러리입니다. 함수들 1. n tuple 벡터에 대한 norm을 구하는 함수. def normSquare(_x): # _x의 norm 의 제곱을 구함. _s = 0 for _i in _x: _s += _i ** 2 return _s 2. 전체 분산 def variance(_mu, _s): # 분산을 구함. V = 0 for _i in range(len(_mu)): for cor ..
개인적인 공부 기록용 포스팅입니다. 따라서 이해가 어려운 부분이 있을 수 있습니다. 하지만 질문이나 지적할 점이 있다면 댓글 써주시면 최대한 이해하시기 쉽게 답변해드리도록 하겠습니다. 저번엔 x의 input 종류가 1개인 간단한 Linear regression을 python으로 구현했었습니다. [바로가기] 수알못의 머신러닝 공부 : 경사하강법 Python으로 구현해보기 지금까지 공부한 선형회귀를 수식적으로 표현한 후에 Python으로 구현해볼려고 합니다. 아래의 수식들은 이전 포스팅에서 자세히 다뤘습니다. 바로가기 수알못의 머신러닝 공부 : 비용함수 수알못의 머신러닝 공부.. hyomyo.tistory.com 이번에는 logistic regression을 공부하고 python으로 구현을 해보았습니다. l..
Normal Equation 정규방정식 지금까지 선형회귀의 모델을 최적화 시키는데에 있어서 경사하강법을 사용했습니다. 이번 포스팅에서는 특정 선형 회귀문제에서 θ를 구하는데 효과적인 방법을 설명하겠습니다. 기존에는 경사하강법을 사용해서 θ의 최적값을 구했습니다. 경사하강법은 최적의 θ를 구하기위해서 특정 알고리즘을 어떤 값에 수렴 할때까지 계속 반복해야합니다. 하지만 Normal Equation(정규 방정식)을 사용하면 반복할 필요없이 한번에 최적의 θ를 구할 수 있습니다. θ가 벡터가 아니라 스칼랄고 가정합시다. 위와같은 cost function(비용함수)이 있을 때 최솟값 θ를 구하는건 간단합니다. 미적분을 배운사람이면, 저 방정식을 미분해서 0이되는 값을 찾기만하면 된다는 것을 직관적으로 알 수 있..
선형회귀 이해에 대한 내용은 아래 나와있습니다. https://hyomyo.tistory.com/11 수알못의 머신러닝 공부 : 비용함수 안녕하세요, 효묘입니다. 요즘 앤드류 응 교수님의 강의를 들으면서 배운 내용을 블로그에 기록해보려고 합니다. 첫 번째로 쓸 내용은 비용함수입니다. Cost function 경제학에서, 비용함수는 어떤 생산량에서의.. hyomyo.tistory.com https://hyomyo.tistory.com/13 수알못의 머신러닝 공부 : 경사하강법 저번 시간에는 비용함수에 대해서 공부했습니다. 다시 정리하지면, 비용함수는 "오차를 표현해주는 미분 가능한 함수" 입니다. 비용함수가 오차들의(제곱의)평균이므로 오차의 최소값을 구해야겠죠? 실제로 최소값.. hyomyo.tistory..
Feature Scaling은 회귀모델에서 독립변수의 범위를 비슷하게 잡아주는 방법이다. Feature Scaling을 하면 좀 더 적합한 모델을 얻을 수 있다. 여기서 독립변수는 y = a_0 + a_1*x_1 + a_2*x_2+ ... 에서 x_i를 말한다. 각각의 독립변수를 Feature(특징)이라고도 한다. 각각의 매개변수 θ0과 θ1에 대해서, x1의 범위가 x2보다 비상적으로 크면 적합한 매개변수를 찾는데에 좀 많은 시간이 걸릴 것입니다. 다음 그림은 매개변수에 따른 비용함수의 값을 등고선으로 나타낸 것입니다. 독립변수의 값은 -1≤ x ≤1 에 가깝게 설정해주는것이 가장 좋다고 합니다. 예를들어 1≤ x ≤3이나 -1.5≤ x ≤0.7 은 나쁘지 않지만, -256≤ x ≤40과 0.005≤ ..
경사하강법에서 학습률이란 한번 학습할때 얼만큼 변화를 주는지에대한 상수입니다. 예를들어 부산에서 서울까지 가는데에 순간이동을 한다고 합시다. 만약 서울방향으로 10km씩 순간이동을 하면 금방 갈것입니다. 하지만 만약 1m씩 순간이동을 하면 너무 오래걸리겠죠. 그리고 1000km씩 순간이동을 하면 서울을 지나 오히려 더 멀어질것입니다. 얼마큼씩 이동할때 이 거리가 바로 학습률입니다. 이 블로그에서 처음 학습률이 등장하는 포스트 : https://hyomyo.tistory.com/13?category=820909 수알못의 머신러닝 공부 : 경사하강법 저번 시간에는 비용함수에 대해서 공부했습니다. 다시 정리하지면, 비용함수는 "오차를 표현해주는 미분 가능한 함수" 입니다. 비용함수가 오차들의(제곱의)평균이므로..
안녕하세요 효묘입니다. 이번 포스팅에서는 지금까지 소개한 내용을 바탕으로 경사하강법을 좀 더 보기 간결하게 수학적으로 짧게 표현하도록 하겠습니다. 행렬이란 : https://hyomyo.tistory.com/15 행렬곱 : https://hyomyo.tistory.com/16 전치행렬이란? : https://hyomyo.tistory.com/17 경사하강법 : https://hyomyo.tistory.com/13 이전에는 X 즉, 학습 훈련집합의 종류가 하나였습니다. 수학적으로는 y = a + b*x 라는 것이죠. 하지만 만약 학습 훈련집합의 종류가 여러개라면 변수가 너무 많아질겁니다. y = a + b*x_1 + c*x_2 + d*x_3 ... 이런 길고 복잡한 식이 나오게 되는데, 수학의 "행렬"을 ..
이번 수업에서는 행렬의 역행렬과 전치행렬을 공부했습니다. 역행렬 역행렬의 개념을 알아가기 앞서서 예전에 배운 역수라는 것을 다시한번 짚어봅시다. 역수란, 0이아닌 어떤 특정한 수에대해 어떠한 수를 곱하면 1이되게하는 것이 역수입니다. 예를들어서 3의 역수는 1/3, 3/5의 역수는 5/3입니다. 1같은 경우는 1의 역수는 똑같이 1이기 때문에 1은 독자성(identity)라고 불립니다. (중요하진 않습니다) 이제 역행렬에대해 알아보겠습니다. 역행렬이 존재하기 위한 몇가지 조건이 있습니다. 첫 번째로 행과 열의 크기가 똑같은 m x m 행렬이여야 합니다. 예를들어 A를 위와같이 정의합시다. A의 역행렬은 A^-1과 같이 표현합니다. 그리고 역행렬의 정의는 다음과 같습니다. 위를 만족하는 행렬 A^-1이 역..
행렬곱에서는 특별한 조건이 필요합니다. 곱하는 행렬(왼쪽)의 열과, 곱해지는 행렬(오른쪽)의 행이 같아야합니다. 즉 행렬의 크기는 (m*n) x (n*o) = (m*o)입니다.
행렬 matrix 행렬(matrix)란, 2차원 형태로 되어있는 구조를 말합니다. 예를 들어서, 위 사진은 행렬입니다. 행렬은 저렇게 생겼습니다. 행렬에 있는 각각의 숫자들을 '원소'라고 부릅니다. 가로줄을 행, 세로줄을 열이라고 부릅니다. 예를들어 1행은 (12 1 2)입니다. 저 행렬은 행(row)이 2개이고, 열(column)가 3개입니다. 위처럼 생긴 행렬은 2x3행렬이라고 부릅니다. 여기 3x1행렬이 있습니다. 이렇게 생긴 행렬은 벡터(vector)라고 부릅니다. 벡터의 형태는 nx1의 형태로 되어있고, 이를 n차원 벡터라고 부릅니다.(n-divisional vector) 위 사진은 3x1행렬이기때문에, 3차원 벡터라고도 부를 수 있습니다. 보통 mxn행렬은 대문자로 표현합니다. 그리고 벡터나 ..