강의자료/머신러닝 59

머신러닝] 다항회귀

주어진 데이터가 단순한 직선보다 복잡한 형태라면 어떤 식으로 예측해야 할까? 비선형 데이터를 학습하는데 선형 모델을 사용할 수 있다. 이렇게 하는 간단한 방법은 각 특성의 거듭제곱을 새로운 특성으로 추가하고 이 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련 시키는 것이다. 이런 기법을 다항회귀(polynomial regression)이라고 한다. 다항회귀는 하나의 독립변수에 대한 차수를 확장해 가며 단항식이 아닌 2차,3차 등의 회귀 모델을 도출한다. 다만 주의할 점은 선형 회귀와 비선형 회귀를 구분하는 것은 독립변수의 선형성이 아니라 회귀 계수의 선형성이라는 것이다. 예를 들어 보면 다음과 같다. 먼저 y = ax2 + bx + c 인 간단한 2차 방정식(quadratic equation)에 약간의..

머신러닝] 확률적 경사하강법

확률적 경사하강법이란 확률적 경사하강법(Stochastic Gradient Descent, SGD)은 무작위로 배치크기가 1인 단 한 개의 샘플을 추출하여 기울기를 계산하고 경사하강 알고리즘을 적용하는 방법이다. 매 반복마다 1개의 샘플을 처리하므로 속도가 매우 빠르고 메모리도 적게 소요 되므로 매우 큰 훈련 데이터 셋도 가능하다. 하지만 1개의 샘플만을 가지고 처리 하기 때문에 훨씬 불안정하고 매끄러운 모양이 아닌 요동치는 모양을 볼 수 있다. 이렇게 요동치는 것은 역설적으로 지역 최솟값을 뛰어 넘어 전역 최솟값을 찾게 도와 줄 수 있어 이 가능성이 배치에 비해 높다. 다만 경사를 구할 때 무작위성을 띄므로 지역 최솟값에서 탈출하기 쉬우나 전역 최솟값에 다다르기 힘들다는 단점을 가지고 있다. 이러한 이..

머신러닝] 경사하강법

데이터를 처리하는 방법 이해하기 슈퍼마켓에서 다음과 같이 온도에 따른 아이스크림 판매량을 조사한 테이블이 있다. 온도 판매량 5 7 9 9 11 14 14 16 17 17 이 때 한 여름에 30도가 되었을 때 이 슈퍼마켓의 아이스크림 판매량이 어느 정도가 될지 궁금하다. 우리는 위와 같이 어떤 값을 예측을 하기 위해 y=ax+b 와 같은 형태의 식을 이용하여 a와 b를 찾고 거기에 x의 값에 30을 넣어서 y의 값을 찾는다. 이것이 선형회귀이다. 이 때 어떤 a와 b의 값을 찾았을 때 위와 같이 오차가 발생하는데 예측하는 값과 실제값 사이의 평균적인 오차를 가장 적게 만드는 a와 b를 찾아야 한다. 결국 위의 그림에서 빨간 선분들의 길이의 합이 최소가 되는 직선의 기울기 a를 찾으면 된다는 것을 알 수 ..

머신러닝]선형회귀의 MSE

컴퓨터가 처리하는 방법 이해하기 다음과 같은 데이터의 책의 쪽수와 가격을 예측하는 규칙을 만들어 보자. 제목 책의 쪽수 책의 가격 A 182 5300 B 286 7000 컴퓨터는 책의 쪽수를 x, 책의 가격을 y로 두고 함수 y=ax 을 책의 쪽수로 부터 책의 가격을 예측하는 모델을 생성한다. 여기서 상수 a를 찾는 과정이 머신러닝이다. 만약 a를 임의의 숫자 30으로 설정했다면 A는 30 * 182 = 5460, B=30 * 286 = 8580 원이다. 이것을 정답과의 오차를 최소 제곱법으로 찾는다면 다음과 같다. $$ \frac{1}{2}({(5460-5300)^2+(8580-7000)^2})=1261000 $$ 컴퓨터는 오차를 감소하는 방향으로 a의 값을 변화시키며 모델을 수정해 나간다. 위와 같이..

[머신러닝알고리즘]최소 제곱법 모델

최소 제곱법 모델 최소제곱법은 어떤 계의 해방정식을 근사적으로 구하는 방법으로 근사값의 해와 실제 해의 제곱의 합이 최소가 되는 해를 구하는 방법이다. 이 방법은 값을 정확하게 측정할 수 없는 경우에 유용하게 사용되며 특희 그 계의 방정식이 어떤 형태인지를 알고 있을 때 방정식의 상수 값들을 추정하는 데에 사용된다. 최소 제곱법 모델 구현하기 1. 정규 방정식을 이용한 풀이 이론 최소 제곱법을 푸는 가장 기본적이고 직관적인 방법은 정규방정식을 이용하는 것이다. 어떤 계에서 n개의 관측값이(Xi,yi)(1

순환신경망 RNN(Recurrent Neural Network)

오늘은 자연어 처리에서 이전에 많이 사용되었던 순환신경망에 대해 살펴 보겠습니다. RNN이란? RNN(Recurrent Neural Network)는 순환신경망을 뜻한다.(과거의 정보를 다시 사용하여 다음에 나오는 문장의 입력으로 사용하여 신경망의 성능을 개선한다) RNN은 입력과 출력을 시퀀스 단위로 처리하는데 여기서 시퀀스란 문장 또는 단어가 나열 된 것을 의미한다. RNN은 은닉층 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 가지고 있다. RNN에서 은닉층의 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell) 이라고 하며 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 역하을 수행하므로 메모리셀 또..

[머신러닝활용]훈련된 머신러닝 모델을 안드로이드 프로그램에서 사용해 보기

이 자료는 한빛미디어 [개발자를 위한 머신러닝&딥러닝] 에서 정리한 자료입니다. 대부분의 책들이 머신러닝을 이용해서 모델을 만드는 방법에 대한 내용을 담고 있는데 이렇게 만든 모델을 활용하는 방법에 대한 책들은 많지 않은것 같네요. 일단 이 책에서 y=2x-1 을 예측하는 모델을 생성하고 이러한 모델을 안드로이드 앱에서 어떻게 사용하는지 방법을 자세히 다루고 있어서 정리 차원에서 올렸습니다. 1. 1단계 : 새로운 안드로이드 프로젝트 만들기 1. New Project -> Empty Activity 선택 후 Name : FirstTFLite, Language : Kotlin -> Finish 2. 2단계 : 레이아웃 파일 수정하기 1. res->layout-> activity_main.xml 파일을 더블..

딥러닝을 위한 도구

1. 넘파이 넘파이(Numpy)는 파이썬의 핵심 과학 패키지중 하나이다. 많은 머신러닝과 딥러밍 패키지가 넘파이를깁ㄴ으로 구현되었고 넘파이 인터페이스를 계승하고 있기 때문에 넘파이는 꼭 익혀야 하는 패키지 중 하나이다. 1.1 넘파이 준비하기 코랩에서 넘파이 임포트 하고 버젼 확인하기 import numpy as np print(np.__version__) 임포트 할 때 as키워드를 사용하는데 이는 별명을 만드는 것으로 볼 수 있다. 일반적으로 numpy의 별칭을 np로 사용한다. 1.2 넘파이로 배열 만들기 1. array() 함수로 2차원 배열 만들기 my_arr = np.array([[1,2,3],[4,5,6]]) print(my_arr) 2. type() 함수로 배열 타입 확인 my_numpy =..

캐글 학습 코스 정리

캐글이 준비한 마이크로 코스에는 데이터 과학 프로젝트를 수행하는데 필요한 기술을 익히는 가장 빠른 방법이라는 목표로 다양한 주제의 과정이 모여 있습니다. 학습에 유용한 코스를 간략히 정리해 보면 다음과 같습니다. ML 입문 코드 : https://www.kaggle.com/learn/intro-to-machine-learning Learn Intro to Machine Learning Tutorials Learn the core ideas in machine learning, and build your first models. www.kaggle.com 다양한 모델 클래스를 소개하고 과적합,모델 검증과 같이 다양한 모델이 공통으로 갖는 주제를 알아 봅니다. 중급ML : https://www.kaggle...

처음 만나는 자연어 처리

요즘 핫하게 뜨고 있는 Chat GPT의 원리를 알아 보기 위해 자연어 처리 부분을 살펴 보겠습니다. 1. 기계의 자연어 처리 컴퓨터는 계산기로 사람 말을 알아 듣는 인공지능이라고 해도 결국은 계산의 처리 결과이다. 그렇다면 기계가 사람 말을 알아 듣는 것 처럼 보이게 하려면 어떤 요소가 필요할까? 입력 -> 처리(모델) -> 출력 어떤 데이터를 입력 받아서 처리 해서 출력하는 기본 요소이다. 이때 인공지능에서는 이러한 처리를 하는 절차를 훈련된 모델을 이용해서 처리하게 된다. 2. 트랜스퍼 러닝(전이학습) 트랜스퍼러닝(transfer learning)란 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법을 가르킨다. 즉 전이학습이라고도 한다. BERT나 GPT등도 트랜스퍼러닝이 적용되어 있..