전체 글 98

[머신러닝 기본#2] 경사 하강법

저번 포스팅에서 분류에 대한 전반적인 시스템에 대해 알아보았습니다. 이번 글에서는 모델 학습 방법 중 경사하강법을 이용한 학습 방법에 대해 알아보도록 하겠습니다. 지난 포스팅에서 살펴봤던 KNN, SVM 등은 거리 기반 알고리즘으로 최적의 파라미터를 찾기 위해 GridSearch를 해야 한다는 특징이 있습니다. 하지만 이번에 알아볼 학습 방법은 데이터에 맞게 가중치를 갱신하는 방식으로 모델 최적화를 하게 됩니다. 먼저 해결해야할 상황에 대해 정의하고 시작하겠습니다. 아래와 같이 데이터가 분포되어 있습니다. 이때, 이 데이터셋을 가장 잘 설명할 수 있는 직선을 찾는 문제입니다. 즉, 아래의 식에서 $ \theta $를 찾는 선형 회귀 문제입니다. 이 문제를 크게 두 가지 방식으로 직선의 가중치를 찾아보도록..

Machine Learning 2023.06.30

[머신러닝 기본#1] 분류

이번 포스팅을 원래 가장 먼저 다루었어야 했는데 이제야 올리게 되었습니다. 지도 학습은 크게 회귀와 분류로 나눌 수 있습니다. 이때 대부분의 내용은 비슷하지만 학습 결과를 확인하는 과정 등 조금씩 다른 몇몇 부분이 존재합니다. 그래서 이번 포스팅에서는 분류 시스템에 집중적으로 다루어보도록 하겠습니다. 전체적인 과정과 결과를 해석하는 법을 알고 나면 이후 다른 모델을 적용하실 때 더 수월할 것입니다. 데이터 불러오기 아주 유명한 분류 데이터인 MNIST를 사용하도록 하겠습니다. from sklearn.datasets import fetch_openml mnist = fetch_openml("mnist_784", version = 1, as_frame = False) X, y = mnist["data"], ..

Machine Learning 2023.06.29

[데이터 전처리#1] 데이터 전처리 개요

최근 인터넷과 전자 기기들의 발달로 매일 엄청난 양의 데이터가 생성되고 있습니다. 그리고 자연스럽게 관련 기술인 인공지능, 머신러닝, 딥러닝 등이 주목받게 되었습니다. 실제로 많은 조직에서 이를 사용해서 큰 수익을 얻은 사례가 있는 만큼 더 이상 기업에서 무시할 수 없게 되면서 데이터 과학자, 엔지니어 등의 직업군을 채용하고 있습니다. 동시에 데이터 분석에 관한 강의, 수업, 책도 쏟아져 나오고 있습니다. 대부분의 매체에서 '데이터 분석의 8할은 전처리가 차지한다'라고 얘기할 만큼 데이터 전처리 과정에 대한 중요성을 언급하고 있습니다. 전처리가 충분히 이루어지지 않은 상태에서는 어떤 모델도 좋은 성능을 발휘하지 못합니다. 많은 머신러닝, 딥러닝 모델들이 패키지로 나와 사용하기 편하게 되었지만 유독 전처리..

Data preprocessing 2023.06.29

[머신러닝#3] 지도 학습 - 로지스틱 회귀(Logistic Regression)

이번 시간에 이야기해볼 지도 학습 머신러닝 모델은 로지스틱 회귀입니다. 로지스틱 회귀 로지스틱 회귀 모델은 분류에 사용될 수 있는 회귀 알고리즘입니다. 어떤 상황을 가정해 봅시다. 만약 종속변수의 값이 0과 1로만 이루어져 있는 이진분류 상황에서 회귀분석을 쓸 수 있을까? 일반적인 회귀분석으로는 No! 입니다. 만일 데이터를 넣어서 모델을 실행시키면 위와 같은 결과가 나올 것입니다. 따라서 분류의 목적에 맞게 회귀 모델을 변형시켜 줄 필요성이 있습니다. 여러분은 어떤 방식이 떠오르시나요?? ※ 간단한 답이니 잠시 멈추고 생각해 보세요. 답이 떠오르시지 않으셔도 됩니다^^ 답은 간단합니다. 회귀분석 값을 시그모이드 함수로 감싸주는 것입니다. 시그모이드 함수는 딥러닝의 활성화 함수로 다들 잘 알고 계시겠지만..

Machine Learning 2023.06.29

[NLP#4] 순환 신경망(RNN)

지난 포스팅에서는 word2vec에 대해서 알아보았습니다. [NLP#3] 추론 기반(word2vec) 지난 시간에는 통계 기반을 통해 단어의 분산 표현을 얻어내는 방법에 대해서 알아보았습니다. [NLP#2] 통계 기반 저번 포스팅에서는 thesaurus를 통해 컴퓨터에게 자연어의 의미 전달하는 방법에 just-data.tistory.com 이번 시간에는 드디어 RNN에 대해 이야기해보도록 하겠습니다. 잠시 지난 시간의 word2vec을 복습해 보도록 하겠습니다. word2vec에서는 앞뒤의 맥락을 통해 가운데 target 단어를 예측하는 방식으로 단어 분산 표현을 만들었습니다. 만약 앞뒤가 아니라 왼쪽 맥락만 고려한다면 어떻게 될까요? 사람이 말을 하는 관점으로 보면 두 번째 방식이 오히려 직관적인 것처..

NLP 2023.06.28

[NLP#3] 추론 기반(word2vec)

지난 시간에는 통계 기반을 통해 단어의 분산 표현을 얻어내는 방법에 대해서 알아보았습니다. [NLP#2] 통계 기반 저번 포스팅에서는 thesaurus를 통해 컴퓨터에게 자연어의 의미 전달하는 방법에 대해 알아보았습니다. 2023.05.12 - [Deep Learning] - [NLP#1] 자연어 처리란? - thesaurus 이번 글에서는 저번 시간에 이어서 just-data.tistory.com 이번 시간에는 추론 기반 방법의 방법 중 word2vec에 대해서 알아보도록 하겠습니다. 먼저 통계 기반의 문제점에 대해서 얘기해 보겠습니다. 간단하게 과정을 되새겨 보면, 동시발생행렬을 통해 PPMI 행렬을 얻게 되었고 SVD를 적용시켜 dense vector로 변환시켰습니다. 하지만 실제 자연어 처리에서 ..

NLP 2023.05.17

[딥러닝#1] 딥러닝 개요

2023.05.10 - [Machine Learning] - [머신러닝#1] 머신러닝 개요 [머신러닝#1] 머신러닝 개요 산업이 발달하기 시작하면서 대부분의 기술들이 인간의 편의를 줄이기 위해 발전되었습니다. 그중 하나가 머신러닝이라고 할 수 있는데요. 예를 한번 들어봅시다. 우리가 흔히 아는 '스팸 메일' just-data.tistory.com 위의 글에서 지도학습 알고리즘 중에 Neural Network가 있다는 것을 알려드렸습니다. 딥러닝 카테고리에서는 이러한 Neural Network에 대해서 다루도록 하겠습니다. DNN에서 출발해서 CNN, RNN을 지나 LSTM까지 글을 올리도록 하겠습니다. 딥러닝(Deep Learning) 딥러닝을 설명하기 위해서 이해를 돕기 위해 많은 책들에서 논리 게이트..

Deep Learning 2023.05.15

[NLP#2] 통계 기반

저번 포스팅에서는 thesaurus를 통해 컴퓨터에게 자연어의 의미 전달하는 방법에 대해 알아보았습니다. 2023.05.12 - [Deep Learning] - [NLP#1] 자연어 처리란? - thesaurus 이번 글에서는 저번 시간에 이어서 통계 기반 기법에 대해 알아보도록 하겠습니다. 컴퓨터에게 자연어를 이해시키기 위한 수단으로써 첫 번째로 수작업으로 단어 간 관계를 정의하는 시도가 있었습니다. 대표적인 예로 스탠퍼드에서 만들고 있는 WordNet을 소개해드렸습니다. 하지만 이런 thesaurus는 사람이 직접 관계를 구축하기 때문에 단어의 동적인 요소와 미묘한 차이를 표현할 수 없다는 점과 비용이 많이 든다는 단점이 존재했습니다. 따라서 이를 해결하기 위해 단어의 뜻을 자동으로 추출하는 '통계 ..

NLP 2023.05.15

[NLP#1] 자연어 처리란? - thesaurus

NLP 포스팅에서는 자연어 처리의 정의와 방법에 대해 알아보도록 하겠습니다. 다음 글까지는 신경망에 대한 지식은 필요 없지만 이후 글의 주제인 추론 기반 방법으로 넘어가게 되면 딥러닝의 개념이 적용되게 됩니다. 따라서 해당 지식을 학습하시고 오면 이해하시는데 큰 도움이 될 것입니다. ※ 딥러닝도 추후 다루도록 하겠습니다. NLP란? NLP란 Natural Language Processing의 약자로 직역하면 '자연어 처리'를 의미합니다. 자연어(natural language)는 한국어와 영어 등 우리가 평소에 쓰는 말을 뜻합니다. 따라서 NLP의 목표는 컴퓨터가 사람의 말을 이해할 수 있도록 가공하는 것입니다. 왜 자연어라고 말하는 걸까요? 우리가 사용하는 말은 시간, 장소, 주변 사람 등 많은 조건들에..

NLP 2023.05.12

[머신러닝#2] 지도 학습 - KNN

저번 포스팅에서 설명드렸던것처럼 머신러닝에는 다양한 알고리즘이 존재합니다. https://just-data.tistory.com/10 이번 포스팅에서는 그중 KNN에 대해서 알아보겠습니다. KNN KNN은 특정 자료의 분류기준을 정할 때, 주변 k개의 데이터가 속하는 클래스들 중에서 가장 많은 클래스로 특정자료를 분류하는 방식을 의미합니다. 위의 사진처럼 새로운 데이터 ? 가 속하는 클래스를 결정하기 위해 가장 가까운 k개의 데이터(k=5) 클래스들 중 다수투표(major voting) 방식에 의해 최다 출현 클래스로 할당하게 됩니다. 따라서 다음과 같은 특징들이 존재합니다. lazy learner training data로부터 수학적 모형인 판별 함수를 학습하지 않습니다. instance-based l..

Machine Learning 2023.05.11