일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바시작하기
- 머신러닝 강의
- supervised learning
- 비지도학습
- 파이썬강좌
- 머신러닝공부
- 백준 알고리즘
- JAVA강좌
- acmicpc.net
- feature scaling
- 경사하강법
- 인공지능
- 딥러닝공부
- 효묘블로그
- 자바
- 머신러닝
- C언어
- unsupervised learning
- java
- python강좌
- 자바강좌
- 비용함수
- 머신러닝 강좌
- c언어 오목
- 지도학습
- 파이썬강의
- 선형회귀
- 딥러닝
- Gradient Descent
- Python강의
- Today
- Total
목록전체 글 (83)
컴공과컴맹효묘의블로그

안녕하세요 효묘입니다! 이번에는 머신러닝을 만들어 보고 싶은데 어떻게 해야할지 감도 안잡히는 사람들을 위한 책 추천을 해드리겠습니다. 이 책은 제가 개인적으로 찾아본 책들중 가장 쉬운 책입니다. 머신러닝의 기본 원리인 인공신경망에 대해서 아주 자세히 쓰여있습니다. 인공신경망의 근원과, 자세한 원리까지 설명합니다. 이름값을 톡톡히 하죠. 게다가 파이썬으로 구현할 수 있도록 예제까지 만들어 줍니다. 물론 파이썬에대한 기초적인 지식만 있으면 예제를 전부 이해할 수 있을겁니다! 다른 책들은 보면 현기증이 날듯한 무서운 수학 기호들과 무슨 소린지 알아볼 수 없는 전문 용어들로 가득 찼지만, 신경망 첫걸음은 최소한의 전문용어와 깔끔한 그림과 함께 표현합니다. 하지만 정말 피할수 없는 미분이라는 수학 지식이 필요한데..

선형회귀 이해에 대한 내용은 아래 나와있습니다. 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행렬은 대문자로 표현합니다. 그리고 벡터나 ..