diff --git "a/week1/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" "b/week1/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" new file mode 100644 index 0000000..2f139fa --- /dev/null +++ "b/week1/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" @@ -0,0 +1,38 @@ +# 나의 첫 머신러닝 +## 인공지능과 머신러닝, 딥러닝 +인공지능 : 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스탬을 만드는 기술 +머신러닝 : 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 +딥러닝 : 머신러닝 알고리즘 중에 인공 신경망을 기반으로 한 방법들을 통칭 +## 코랩과 주피터 노트북 +코랩 : 구글 계정이 있으면 누구나 사용할 수 있는 웹 브라우저 기반의 파이썬 코드 실행 환경 +노트북 : 코드, 코드 실행 겨로가, 문서 모두 저장 가능 +구글 드라이브 : 구글이 제공하는 클라우드 파일 저장 서비스 +텍스트 셀에는 마크다운 사용 가능 +## 마켓과 머신러닝 +특성 : 데이터를 표현하는 하나의 성질 +훈련 : 머신러닝 알고리즘이 데이터에서 규칙을 찾는 과정 +k-최근접 이웃 알고리즘 : 가장 간단한 머신러닝 알고리즘. 전체 데이터를 메모리에 가지고 있는다. +모델 : 알고리즘이 구현된 객체 +정확도 : 정확히 맞힌 개수/전체 데이터 개수 +1. matplotlib +- scatter() : 산점도 그리기 +2. scikit-learn +- KNeighborsClassifier() : k-최근접 이웃 분류 모델을 만드는 사이킷런 클래스 +- fit() : 사이킷런 모델 훈련 +- predict() : 모델 훈련 및 예측 +- score() : 훈련된 사이킷런 모델의 성능 측정 +# 데이터 다루기 +## 훈련 세트와 테스트 세트 +지도 학습 : 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는 데 활용 +비지도 학습 : 타깃 데이터 X. 입력 데이터에서 어떤 특징을 찾는 데 주로 활용 +1. numpy +- seed() : 난수를 생성하기 위한 정수 초깃값 지정 +- arrange() : 일정한 간격의 정수 또는 실수 배열 만들기 +- shuffle() : 주어진 배열 랜덤하게 섞기 +## 데이터 전처리 +데이터 전처리 : 머신러닝 모델에 훈련 데이터를 주입하기 전에 가공하는 단계 +표준점수 : 훈련 세트의 스케일을 바꾸는 대표적인 방법 중 하나 +브로드캐스팅 : 크기가 다른 넘파이 배열에서 자동으로 사칙 연산을 모든 행이나 열로 확장하여 수행하는 기능 +1. scikit-learn +- train_test_split() : 훈련 데이터를 훈련 세트와 테스트 세트로 나눔 +- kneighbors() : k-최근접 이웃 객체의 메서드 \ No newline at end of file diff --git "a/week2/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" "b/week2/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" new file mode 100644 index 0000000..b973e97 --- /dev/null +++ "b/week2/3\355\214\200_\352\271\200\355\225\234\352\262\260.md" @@ -0,0 +1,38 @@ +# 회귀 알고리즘과 모델 규제 + +## k-최근접 이웃 회귀 + +회귀 : 임의의 수치를 예측하는 문제. 타깃값도 임의의 수치가 된다. +k-최근접 이웃 회귀 : k-최근접 이웃 알고리즘을 이용하여 회귀 문제를 해결. 가장 가까운 이웃 샘플을 찾고 이 샘플들의 타깃값을 평균하여 예측으로 삼음. +결정계수(R^2) : 대표적인 회귀 문제의 성능 측정 도구. 1에 가까울수록 좋고, 0에 가깝다면 성능이 나쁜 모델. +과대적합 : 모델의 훈련 세트 성능이 테스트 세트 성능보다 훨씬 높을 때 +과소적합 : 훈련 세트와 테스트 세트 성능이 모두 동일하게 낮거나 테스트 세트 성능이 오히려 더 높을 때 + +1. scikit-learn + +- KNeighborsRegressor : k-최근접 이웃 회귀 모델을 만드는 사이킷런 클래스. n_neighbors 매개변수로 이웃의 개수를 지정(기본값 5). +- mean_absolute_error() : 회귀 모델의 평균 절댓값 오차 계산. 첫 번째 매개변수는 타깃, 두 번째 매개변수는 예측값 전달. 타깃과 예측을 뺀 값을 제곱한 다음 전체 샘플에 대해 평균한 값을 반환 + +2. numpy + +- reshape() : 배열의 크기를 바꾸는 메서드. 바꾸고자 하는 배열의 크기를 매개변수로 전달. + +## 선형 회귀 + +선형 회귀 : 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식 찾기 + +- 선형 회귀가 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수 또는 가중치에 저장 + 모델 파라미터 : 선형 회귀가 찾은 가중치처럼 머신러닝 모델이 특성에서 학습한 파라미터 + 다항 회귀 : 다항식을 사용하여 특성과 타깃 사이의 관계를 나타냄. 비선형일 수 있지만 여전히 선형 회귀로 표현할 수 있음 + +1. scikit-learn + +- LinearRegression : 사이킷런의 선형 회귀 클래스. coef* 속성에서는 특성에 대한 계수 포함, intercept* 속성에는 절편이 저장. + +## 특성 공학과 규제 + +다중 회귀 : 여러 개의 특성을 사용하는 회귀 모델 +특성 공학 : 주어진 특성을 조합하여 새로운 특성을 만드는 일련의 작업 과정 +릿지 : 규제가 있는 선형 회귀 모델 중 하나이며 선형 모델의 계수를 작게 만들어 과대적합을 완화 +라쏘 : 릿지와 달리 계수 값을 아예 0으로 만들 수 있음 +하이퍼파라미터 : 머신러닝 알고리즘이 학습하니 않는 파라미터 diff --git "a/week8/2\355\214\200_\352\271\200\355\225\234\352\262\260.md" "b/week8/2\355\214\200_\352\271\200\355\225\234\352\262\260.md" new file mode 100644 index 0000000..7d881e5 --- /dev/null +++ "b/week8/2\355\214\200_\352\271\200\355\225\234\352\262\260.md" @@ -0,0 +1,48 @@ +# 09 텍스트를 위한 인공 신경망 + +## 09-1 순차 데이터와 순환 신경망 + +### 순차 데이터 + +1. **순차 데이터** : 텍스트나 시계열 데이터(일정한 시간 간격으로 기록된 데이터)와 같이 순서에 의미가 있는 데이터 + +- 이 장에서 사용하는 댓글, 즉 텍스트 데어터는 단어의 순서가 중요하므로 이전에 입력한 데이터를 기억하는 기능이 필요합니다. + +1. **피드포워드 신경망** : 입력 데이터의 흐름이 앞으로만 전달되는 신경망 + +- 이전 장에서 배웠던 완전 연결 신경망과 합성곱 신경망이 모두 피드포워드 신경망에 속합니다. + +### 순환 신경망 + +1. **순환 신경망** : 순차 데이터에 잘 맞는 인공 신경망의 한 종류이며 순차 데이터를 처리하기 위해 고안된 순환층을 1개 이상 사용한 신경망 + +- 타임스텝 : 샘플을 처리하는 한 단계 +- 셀 : 순환 신경망에서 층을 부르는 방법 +- 은닉 상태 : 셀의 출력 + - 은닉층의 활성화 함수로는 tanh가 많이 사용됩니다. + +## 09-2 순환 신경망으로 IMDB 리뷰 분류하기 + +### IMDB 리뷰 데이터셋 + +1. **IMDB 리뷰 데이터셋** : 유명한 인터넷 영화 데이터베이스인 imdb.com에서 수집한 리뷰를 감상평에 따라 긍정과 부정으로 분류해 놓은 데이터셋 + +1. **토큰** : 일반적으로 영어 문장은 모두 소문자로 바꾸고 구둣점을 삭제한 다음 공백을 기준으로 분리하여 매핑하는데 이렇게 분리된 단어 + +- 특정한 용도로 예약된 정수 : 0(패딩), 1(문장의 시작), 2(어휘 사전에 없는 토큰) + +### 순환 신경망 + +1. **원-핫 인코딩** : 어떤 클래스에 해당하는 원소만 1이고 나머지는 무도 0인 벡터 + +### 단어 임베딩 + +1. **단어 임베딩** : 정수로 변환된 토큰을 비교적 작은 크기의 실수 밀집 벡터로 변환 + +## 09-3 LSTM과 GRU 셀 + +1. **LSTM** 타임스텝이 긴 데이터를 효과적으로 학습하기 위해 고안된 순환층(입력 게이트, 삭제 게이트, 출력 게이트 역할을 하는 작은 셀 포함) + +- 은닉 상태 외에 셀 상태를 출력합니다. 셀 상태는 다음 층으로 전달되지 않으며 현재 셀에서만 순환됩니다. + +1. **GRU** : LSTM 셀의 간소화 버전으로 생각할 수 있지만 LSTM 셀에 못지않는 성능을 가짐