본문 바로가기

AI

(163)
PyTorch #자연어 데이터 전처리 토큰화 : 주어진 텍스트를 단어나 문자 단위로 자르는 것 단어 집합 생성 : 중복을 제거한 텍스트의 총 단어(문자)의 집합 생성 정수 인코딩 : 단어를 컴퓨터가 이해하기 쉽게 고유한 정수로 변환 패딩 : 길이가 다른 문장들을 모두 동일한 길이로 바꾸는 작업 벡터화 : 고유한 정수로 맵핑된 단어를 원-핫 인코딩이나 워드 임베딩으로 벡터화 시킴(주로 워드 임베딩 사용) 1. 토큰화(Tokenization) - 영어의 경우 spaCy와 NLTK로 토큰화 진행 예) "A Dog Run back corner near spare bedrooms" 라는 문장을 spaCy와 NLTK로 토큰화 수행 spaCy # spaCy 예 import spacy spacy_en = spacy.load('en') def tokeniz..
PyTorch #합성곱 신경망(CNN) 합성곱 신경망(Convolutional Neural Network) - 이미지 처리에 탁월한 성능 - 크게 합성곱층(Convolution layer)와 풀링층(Pooling layer)로 구성 - 이미지의 공간적인 구조 정보를 보존하면서 학습한다 01. 합성곱과 풀링 채널(Channel) - 이미지는 높이, 너비, 채널(RGB 성분)의 3차원 텐서 - 가로 세로 28 픽셀의 흑백 이미지는 28 x 28 x 1 의 크기를 가지는 3차원 텐서 - 가로 세로 28 픽셀의 컬러 이미지는 28 x 28 x 3 의 크기를 가지는 3차원 텐서 합성곱 연산(Convolution operation) - 합성곱층은 합성곱 연산을 통해 이미지의 특징을 추출하는 역할 - 커널(kernel) or 필터(filter)라는 n x..
PyTorch #인공 신경망(ANN) 인공 신경망(Aritificial Neural Network-ANN) - 생물학적 뉴런에서 영감을 받아 만든 머신러닝 알고리즘 - 이미지, 음성, 텍스트 분야에서 뛰어난 성능 발휘 - 딥러닝 이라고도 불림 - 기본적으로 로지스틱 회귀(SGDClassifier)와 비슷 01. 머신 러닝 용어 1. 머신 러닝 모델의 평가 실제 모델을 평가하기 위해 데이터를 훈련, 검증, 테스트용 세가지로 분리하는 것이 일반적 - 검증용 데이터 : 모델의 성능을 조정하기 위한 용도, 과적합 판단이나 하이퍼파라미터 조정을 하는데 쓰임 - 하이퍼파라미터 : 모델의 성능에 영향을 주는 사용자가 직접 정해줄 수 있는 변수 ex) learning rate, 히든레이어의 수, 뉴런 수, 드롭아웃 비율 등 - 튜닝 - 훈련용 데이터로 훈..
SQL 작성시 좋은 습관 SQL 작성시 좋은 습관 - 나중에 내가 다시 봐도 알아보기 쉽도록 - 다른 사람이 내 쿼리를 이해하기 쉽도록 DO DON'T SQL 명령어는 대문자로 필요없는 공백은 쓰지 않기 컬럼명은 축약하지 말고 Full-Name 으로 컬럼명에 테이블이름/SQL 명령어처럼 미리 약속된 단어는 금지 테이블 탐색시에는 부담을 줄이기 위해 LIMIT 사용
PyTorch #소프트맥스 회귀(Softmax Regression) 소프트맥스 회귀 - 3개 이상의 선택지로부터 1개를 선택하는 다중 클래스 분류 원-핫 인코딩(One-Hot Encoding) 1. 원-핫 인코딩이란? - 선택해야하는 선택지의 개수만큼 차원을 가지면서, 각 선택지의 인덱스에 해당하는 원소에는 1, 나머지 원소는 0의 값을 가지도록 표현하는 방법 예) 강아지 = [1, 0, 0] 고양이 = [0, 1, 0] 냉장고 = [0, 0, 1] - 원-핫 인코딩으로 표현된 벡터를 원-핫 벡터(one-hot vector)라고 함 2. 원-핫 벡터의 무작위성 - 대부분의 다중 클래스 분류 문제가 각 클래스 간의 관계가 균등하다는 점에서 원-핫 벡터는 적절한 표현방법 - 모든 클래스에 대해 원-핫 인코딩을 통해 얻은 원-핫 벡터들은 모든 쌍에 대해 유클리드 거리를 구해도..
PyTorch #로지스틱 회귀(Logistic Regression) 로지스틱 회귀(Logistic Regression) - 말은 회귀지만 회귀 모델이 아닌 분류 모델 - 선형 방정식을 사용한 분류 알고리즘, 계산한 값을 0과 1사이로 압축 - 시그모이드 함수(이진 분류) 나 소프트맥스 함수(다중 분류)를 사용해 클래스 확율을 출력 가능 시그모이드 함수(Sigmoid fuction) 1. W가 1이고 b가 0인 그래프 생성 - x가 0일 때 0.5의 출력값을 가짐 - x가 매우 커지면 1에 수렴 - x가 매우 작아지면 0에 수렴 # Mtplotlib 과 Numpy 임포트 %matplotlib inline import numpy as np # 넘파이 사용 import matplotlib.pyplot as plt # 맷플롯립사용 # Numpy를 사용해 시그모이드 함수 정의 d..
PyTorch #선형 회귀(Linear Regression) 선형 회귀(Linear Regression) - 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식을 찾음 - 특성이 하나면 직선 방정식이 됨 - 선형 회귀가 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수(기울기) 또는 가중치(기울기와 절편)에 저장됨 - 훈련 세트 범위 밖의 샘플을 예측 파이토치로 선형 회귀 구현 가중치(Weight)와 편향(bias) 초기화 선형회귀란 학습 데이터와 가장 잘 맞는 하나의 직선을 찾는 것 가장 잘 맞는 직선을 정의하는 것은 W와 b 선형 회귀의 목표는 가장 잘 맞는 직선을 정의하는 W와 b의 값을 찾는 것 W와 b는 직선 방정식의 기울기와 y 절편에 해당 경사 하강법 구현 SGD는 경사 하강법의 일종, Ir은 학습률(learning rate)를 의미 학습 대상..
PyTorch 텐서 조작 #뷰 #스퀴즈 #언스퀴즈 #타입 캐스팅 #텐서 연결 1) 뷰(View) - 원소의 수를 유지하면서 텐서의 크기 변경 - 파이토치 텐서의 뷰(view)는 넘파이에서 리쉐이프(Reshape)와 같은 역할 - 텐서의 크기(Shape)를 변경 - 3차원 텐서 생성 # torch 임포트 import torch # numpy 임포트 import numpy as np # 3차원 텐서 생성 t = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]) ft = torch.FloatTensor(t) # ft의 크기 확인 print(ft.shape) - 3차원 텐서에서 2차원 텐서로 변경 # ft라는 텐서를 (?,3)의 크기로 변경 print(ft.view([-1, 3])) print(ft.view([-1, 3]).sh..

반응형