파이썬으로 할 수 있는 일/AI&머신러닝 (21) 썸네일형 리스트형 ChatGPT에 대한 배경 및 기본 구조 이해 1. Rule based programming 머신러닝 이전에 했던 방식으로 Input된 대상을 구별하기 위한 특징들(features)을 사람들이 직접 찾아내서, 판단할 수 있는 로직을 코딩으로 작성하여 결과(Output)을 찾아내는 방식임. 2. Hand designed feature based machine learning 사람들이 특징들(features)을 찾아내고, 특징들에 대한 로직은 코딩 대신 머신러닝(Machine Learning)을 통해 만들어 결과(Output)을 찾아내는 방식임. * 머신러닝(Machine Learning)에 대한 기본 이해 학습 단계1. 학습데이터 준비 (사람들이 직접 특징 정의하고 학습 데이터 생성을 위한 코딩 작업 수행) 1-1. 이미지 수집 → 1-2. 특징 정의.. Transformer의 기본 구조 최근 AI비서, ARS 등 언어 처리에 대한 분야에서 많이 사용되는 딥러닝 아키텍처인 Transformer에 대해 공부중이다. 공부한 내용을 정리하면 좀 더 기억이 잘 되기에 기록을 남겨본다. RNN과 LSTM 네트워크는 다음 단어 예측, 기계 번역, 텍스트 생성 등의 태스크에서 사용되어 왔었다. 하지만 트랜스포머가 발표된 후에는 트랜스포머에게 자리를 내주었다고 할 수 있다. 트랜스포머가 출연하면서 자연어 처리 분야가 획기적으로 발전하고, 이를 기반으로 한 BERT, GPT-3, T5 등과 같은 아키텍처가 나오게 되었다. 트랜스포머는 RNN에서 사용한 순환 방식을 사용하지 않는다. 대신 셀프 어텐션(self-attention)이라는 특수한 형태의 어텐션을 사용한다. 트랜스포머는 인코더-디코더로 구성된 모.. 머신러닝 용어들(NLP, CV) 머신러닝을 접하면서 마주하게 될 용어들을 정리해 보도록 한다. 1. 자연어 처리(Natural Language Processing, NLP) : 자연어 처리(NLP)는 인간이 대화하는 말의 형태를 기계가 배우는 머신러닝 방법을 말한다. 지금까지 기본적으로 NLP로 진행해 왔던 분류는 다음과 같다. - 텍스트 분류 및 순위(Text classification and ranking) : 스팸이나 정크 메일을 필터링 해서 분류하는 것이 대표적이다. - 감성 분석(Sentiment analysis) : 이 분석은 머신이 제공하는 피드백에 대한 감성적 반응을 예측한다. 고객 관계와 만족도가 팩터가 된다. - 문서 요약(Document summarization) : 복합적이고 복잡한 긴 글을 짧고 압축된 정의를 사.. 데이터 정제(Data Cleaning)와 정규화(Normalizing) : 사이킷런(Scikit-learn) 기초 머신러닝에 있어, 가장 먼저해야 하는 일 중 하나가 데이터 정제(Data Cleaning)입니다. 왜냐하면 바로 모델을 훈련할 수 있는 데이터셋을 확보하는 것이 실제로는 매우 어렵기 때문입니다. 따라서, 결측값(NaN)은 없는지, 이상치(outlier)는 없는지 알아보기 위해 데이터셋을 주의깊게 살펴보아야 합니다. 값이 큰 열이 있는 경우 정규화를 통한 보정이 필요하기도 합니다. 이번에는 데이터 정제(Data Cleaning)에 필요한 일반적인 작업에 대해 알아보도록 하겠습니다. 결측값(NaN)이 있는 열 정제하기 다음 데이터로 된 NaNDataset.csv 파일이 있다고 가정하겠습니다. 눈으로 봐도 몇개 열에 결측값이 있는 것을 확인할 수 있습니다. 작은 데이터셋에서는, 쉽게 결측값을 찾을 수 있습니다.. 선형 회귀분석(Linear Regression) : 사이킷런(Scikit-learn) 기초 사이킷런(Scikit-learn)으로 머신러닝을 시작하는 가장 쉬운 방법 중 하나가 선형 회귀분석을 구현해 보는 것입니다. 선형 회귀분석은 스칼라 종속 변수 y와 하나 이상의 설명 변수(또는 독립 변수) 간의 관계를 모델링하는 선형 접근법입니다. 예를 들어, 사람들의 키와 몸무게로 된 데이터셋이 있다고 합시다. >>> %matplotlib inline >>> import matplotlib.pyplot as plt >>> plt.rc('font', family='NanumGothic') # 네이버 글꼴을 미리 다운로드 받아야 합니다. 다른 글꼴을 사용하시려면 글꼴명을 변경해서 사용하시면 됩니다. >>> heights = [[1.6], [1.65], [1.7], [1.73], [1.8]] # 키는 미터(m.. 데이터셋 획득 : 사이킷런(Scikit-learn) 기초 Scikit-learn 라이브러리는 파이썬에서 가장 유명한 머신러닝 라이브러리 중 하나로, 분류(classification), 회귀(regression), 군집화(clustering), 의사결정 트리(decision tree) 등의 다양한 머신러닝 알고리즘을 적용할 수 있는 함수들을 제공합니다. 이번에는 머신러닝 수행 방법을 알아보기 전에, 다양한 샘플 데이터를 확보할 수 있는 방법들을 알아보려고 합니다. 데이터셋(Datasets) 얻기 머신러닝을 시작할 때, 간단하게 데이터셋을 얻어서 알고리즘을 테스트해 보는 것이 머신러닝을 이해하는데 있어 매우 유용합니다. 간단한 데이터셋으로 원리를 이해한 후, 실제 생활에서 얻을 수 있는 더 큰 데이터셋을 가지고 작업하는 것이 좋습니다. 우선 머신러닝을 연습하기 위.. 머신러닝 프로젝트 실행 -5 머신러닝 프로젝트 실행(6~7단계) 머신러닝 프로젝트 실행 순서는 1. 문제를 정의하고 전체 그림 바라보기2. 데이터 얻기3. 인사이트를 찾기 위해 데이터 탐색하기4. 기본 데이터 패턴을 머신러닝 알고리즘에 더 잘 노출할 수 있도록 데이터 준비하기5. 다양한 모델을 탐색하고 그 중 가장 좋은 모델을 찾기6. 모델을 알맞게 튜닝하고 멋진 솔루션으로 통합하기7. 시스템 런칭, 모니터링과 유지하기입니다. 지금까지, 1~5단계까지 살펴보았습니다. 이제 2단계만 살펴보면 마무리 될 것 같습니다. 먼저, 6. 모델을 알맞게 튜닝하고 멋진 솔루션으로 통합하기 이제 유망한 모델들을 가졌다고 가정해 봅시다. 그럼, 이 모델들을 튜닝하는 것이 필요합니다. 실행할 수 있는 몇가지 방법을 살펴보도록 하겠습니다. 그리드 서치(.. 머신러닝 프로젝트 실행 -4 이번에는 머신러닝 프로젝트 4단계에 이어, 5단계를 살펴보도록 하겠습니다. 5. 다양한 모델을 탐색하고 그 중 가장 좋은 모델 찾기지금까지 문제를 정의하고, 데이터를 얻어서 탐색해 보았습니다. 그리고 트레이닝 셋과 테스트 셋을 샘플링하고, 자동적으로 머신러닝 알고리즘을 위해 클리닝해서 데이터를 준비하기 위해 변형 파이프라인을 작성했습니다. 이제 머신러닝 모델을 선택해서 트레이닝시킬 준비가 되었습니다. 트레이닝 셋에서 훈련하고 평가하기좋은 소식은 이전 1~4단계 덕분에, 이제 생각했던 것보다 상황이 훨씬 간단하게 진행될 것이라는 것입니다. 우선 선형 회귀 모델을 트레이닝해 봅시다.>>> from sklearn.linear_model import LinearRegression>>> lin_reg = Line.. 이전 1 2 3 다음