일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바시작하기
- 머신러닝
- acmicpc.net
- 딥러닝
- 지도학습
- C언어
- 자바강좌
- JAVA강좌
- 딥러닝공부
- 비지도학습
- java
- supervised learning
- 인공지능
- 머신러닝 강의
- Gradient Descent
- Python강의
- unsupervised learning
- 파이썬강의
- c언어 오목
- 백준 알고리즘
- 자바
- 머신러닝공부
- 비용함수
- 머신러닝 강좌
- 선형회귀
- 효묘블로그
- 파이썬강좌
- python강좌
- 경사하강법
- feature scaling
- Today
- Total
목록전체 글 (82)
컴공과컴맹효묘의블로그
선형회귀 이해에 대한 내용은 아래 나와있습니다. 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≤ ..
포인터와 1차원 배열 C언어에서의 배열 변수는 사실 포인터 입니다. 값이아닌 주소를 가리키고 있습니다. #include int main(){ int array[3]={10,20,30}; printf("%x %x %x\n", &array[0], array, array+0);//&array[0]==array==array+0 printf("%x %x\n",&array[1], array+1); return 0; } 실행결과 62fe10 62fe10 62fe10 62fe14 62fe14 위 코드는 array[0]의 주소가 어디에 있는지 알려줍니다. 코드를 보시면, &array[0]==array==array+0 임을 알 수 있습니다. 세 개의 표현 모두 같은 주소를 가리키고 있으므로, 세 개의 코드는 모두 같은 표..
이번에 알고리즘을 공부하려고 하는데 책의 도입부분에서 알고리즘의 시간을 측정할 수 있는 방법을 알려주었다. 실행시간을 측정하는 아이디어는 프로그램(알고리즘)을 실행하기 전의 시간을 측정하고, 실행한 후의 시간을 한번 더 측정해서 측정된 수 시간의 차를 계산하는 것이다. [헤더파일] 일단 clock()함수를 사용하려면 time.h 를 인클루드 해야한다. [함수 설명] clock()함수는 호출되었을때 밀리세컨드 단위로 시스템 시각을 반환한다. +밀리세컨드(ms, millisecond)란? 밀리세컨드는 1초(sec)를 1000등분으로 쪼갠 시간을 뜻한다. 따라서 1초는 1000밀리세컨드가 된다. [주요 상수] CLOCKS_PER_SEC은 time.h에 정의되어있다. #define CLOCKS_PER_SEC 1..
경사하강법에서 학습률이란 한번 학습할때 얼만큼 변화를 주는지에대한 상수입니다. 예를들어 부산에서 서울까지 가는데에 순간이동을 한다고 합시다. 만약 서울방향으로 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행렬은 대문자로 표현합니다. 그리고 벡터나 ..
지금까지 공부한 선형회귀를 수식적으로 표현한 후에 Python으로 구현해볼려고 합니다. 아래의 수식들은 이전 포스팅에서 자세히 다뤘습니다. 바로가기 수알못의 머신러닝 공부 : 비용함수 수알못의 머신러닝 공부 : 경사하강법 일단 점들을 지나는 직선을 표현해보겠습니다. 그리고 오차를 구합니다. 위 수식의 오차는 쓸모가 없습니다. 이유는 만약, 2개의 데이터셋에서 오차가 각각 -1, 1이 나온다면, 오차들의 평균은 0이기때문에 적절한 오차를 구할 수 없습니다. 따라서 절댓값 혹은 제곱을 씌워줍니다. 절댓값은 미분 불가능한 점이 나올 수 있기때문에 제곱을 씌워줍니다. 그리고 데이터셋의 개수인 m으로 나누고, 미분하면 2가 떨어지니 1/2을 또 곱합니다. 비용함수를 구했습니다. 이제 비용함수의 극소값을 구하기 위..