목록머신러닝 (16)
하루 하루
Supervised Learning for document classification (https://youtu.be/kxImnFg4ZiQ) 단계 1. Data preaparation 2. Text preprocessing male. txt에 있는 이름들에 male이라고 레이블을 붙이고, female.txt에 있는 이름들에 female이라고 레이블을 붙여서 데이터를 준비했다. from nltk.corpus import * import random labeled_names = ([(name, 'male') for name in names.words('male.txt')] + [(name, 'female') for name in names.words('female.txt')]) #male.txt 의 단어에 ..
ㅁ인공지능 인공지능은 인간의 두뇌를 기계로 구현하는 것을 이야기하며 머신러닝과 딥러닝을 포괄한다. 즉, 컴퓨터 비전, 자연어 처리, 로봇 공학 등 사람의 지능이 필요한 것을 기계가 대체하도록 하는 것을 모두 이야기한다. 여기서 머신러닝은 인공지능을 만드닌 방식으로 기계에게 사람이 구체적인 로직을 설명하지 않아도 학습하는 것을 의미하며, 딥러닝은 머신러닝을 구현하는 기술 중 하나이다. 분류 예시 설명 플랫폼 spark, hadoop 데이터 수집, 저장 및 데이터 분석을 포함하는 기반 환경 도구 tableau, jupyter, R studio, Qlik 프로그램 개발을 돕는 개발 도구 프레임워크 spark, scikit learn, tensorflow, keras 머신러닝 및 딥러닝 알고리즘 학습 및 실행을..
Time Flies like an arrow Fruit flies like an banana 두 문장에서 Flies의 품사는 다른데, 품사 정보가 제대로 명시 되지 않는다면 해석 상에 문제가 생기게 된다. Tagging 위와 같은 중의적인 문제를 해결하기 위해서 말뭉치에 붙이는 부가적인 언어 정보를 tag라고, tag를 원시 말뭉치에 붙이는 것을 Tagging이라 한다. 그리고, 이러한 Tagging을 수행하는 프로그램을 Tagger 라고 하고, 태그가 부착된 말뭉치를 Tagged corpus라 한다. 1. raw text -> sentence segmentation -> sentence 2. sentence -> tokenization -> tokenized sentence 3. tokenized se..
적대적 공격 적대적 공격은 노이즈 생성해서 사람의 눈에는 구분이 되지 않지만 머신러닝 모델에게는 착시를 만들어 헷갈리도록 만드는 예제를 만드는 것이다. 위의 사진에서 왼쪽은 원본 사진이고, 오르쪽은 노이즈가 추가된 사진이다. 노이즈가 추가되어도 사람은 웰시코기로 분류하지만 적대적공격으로 딥러닝은 Whippet으로 분류한다. Whippet 사진 적대적 예제 분류 기준 1. 기울기와 같은 모델 정보가 필요한가? -> O : White Box Model -> X : Black Box Model 2. 원하는 정답으로 유도할 수 있는지? -> O : Targeted -> X : Non- Targeted 3. 노이즈를 생성하기 위해 반복학습이 필요한가? -> O : Iterative -> X : One-Shot 4..
Seq2Seq 대표사진 삭제 사진 설명을 입력하세요. Seq2Seq는 인코더 역할 RNN과 디코더 역할을 하는 RNN을 이어 붙인 형태이다. 인코더에서는 원문 속 단어들을 통해서 문장의 뜻을 내포하는 고정 크기 텐서인 context vector를 만들어 낸다. 디코더는 context vector를 통해서 번역문의 토큰을 차례대로 예상하는 역할을 한다. 대표사진 삭제 사진 설명을 입력하세요.
더보기 https://programmers.co.kr/learn/courses/2 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 내용은 위의 강의를 바탕으로 내용을 정리한 게시물입니다. 1. dictionary ages = {'Tod' : 35, 'Jane' = 23, 'Paul' : 62} ages['Sunny'] = 5 # 값 추가 {'Tod' : 35, 'Jane' : 23, 'Paul' : 62, 'Sunny' : 5} ages['Sunny'] = 10 # 값 수정 {'Tod' : 35, 'Jane' : 23, 'Paul' : 62, 'Sun..
RNN 순차적 데이터 혹은 시계열 데이터의 정보를 받아서 전체 내용을 학습 정해지지 않은 길이의 배열을 읽고 설명하는 신경망 IMDB 영화 리뷰 감성 분석 1. 자연어 전처리 2. RNN 모델 구현
https://youtu.be/k8fTYJPd3_I https://youtu.be/_e-LFe_igno https://youtu.be/JXQT_vxqwIs
오토인코더 오토인코더는 input 을 output으로 복사함으로써 학습한다.( input 과 output 모두 input과 동일한 값이다. ) 단, 신경망은 범용근사자 (ubniversal function approximator ) 로서 근사치를 출력하기 때문에 x와 똑같은 출력을 내기 힘들다. 입력된 x를 '복원'한다는 개념이 더 알맞다. 그러므로 오차값에도 x를 얼마나 복워냈는지를 뜻하는 복원오차, 혹은 정보손실값 (reconstruction loss)라는 용어를 사용한다. Denoising Autoencoder 입력에 잡음을 더해 복원 능력을 강화한 오토인코더
https://youtu.be/DtEq44FTPM4
ResNet 마이크로소프트에서 개발된 ResNet은 2015년 ILSVRC에서 우승을 차지한 알고리즘 ResNet 이 기존 모델과 다른 점은 Shortcut 이 있다는 것이다. Shortcut은 신경망에서 input data를 몇 계층씩 건너뛰어서 output에 더할 수 있도록 해 입력의 특징이 유실되지 않도록 해준다. CIFAR -10 데이터셋 https://www.cs.toronto.edu/~kriz/cifar.html CIFAR-10 데이터 세트는 10 개 클래스의 60000 32x32 컬러 이미지와 클래스 당 6000 개의 이미지로 구성된다. 50000 개의 훈련 이미지와 10000 개의 테스트 이미지가 있다. 해당 데이터셋은 컬러 이미지를 포함하고 있는데, 컬러 이미지는 몇 가지 채널을 포함한다..
CNN 이미지를 볼 때 뇌가 특정 부위만 자극된다는 사실에서 착안하여 만든 모델 필터 / Kernel - 이미지의 특징을 추출한다. - 컨볼루션 계츨 하나에 여러 개가 존재할 수 있다. - (홀수 정수 ) * (홀수 정수 ) 크기가 보통 사용된다. Stride - 필터가 이미지에 적용될 때 한 번에 얼마나 이동하는지에 대한 갑사 - Stride의 크긱가 커질수록 출력 Tensor의 크기는 작아진다. Feature Map 컨볼루션을 거쳐 만들어지는 이미지 Pooling - 과적합의 위험을 줄이기 위해 Convolution에서 추출한 특징을 값 하나로 추려내서 특징 맵의 크기를 줄이고 중요한 특징을 강조하는 역할 - 필터가 지나갈 떄 마다 평균이나 최댓값을 가져오는 연산 수행 더보기 tf.nn.max_poo..
DNN 0. 1~3 번 epoch 만큼 반복 1. 신경망 학습하기 train (model, train_loader, optimizer) 2. 신경망 테스트하기 test_loss, test_accuracy = evaluate( model, test_loader ) 3. 결과 출력하기 print('[{}] Test Loss: {:.4f}, Accuracy: {:.2f}%'.format(epoch,test_loss,test_accuracy)) 신경망 학습하기 model.train ( )으로 학습 모드 설정후에 for 문으로 배치 데이터 만큼만 가져와서 신겸망을 학습한다. 우선, 입력 data와 목표 target 값을 가져와서 device로 보낸다. ( device 는 GPU 로 앞서서 설정한 상황 ) 다음으로..
https://pytorch.org/docs/stable/nn.html torch.nn — PyTorch master documentation Shortcuts pytorch.org Parameters torch.nn.Parameter - 매개변수 1. data ( Tensor ) 2. needs_grad ( bool , optional ) : 매개 변수에 그래디언트가 필요한 경우 ( default = True) Containers torch.nn.Module neural network modules의 기본적인 클래스 import torch.nn as nn import torch.nn.functional as F class Model(nn.Module): def __init__(self): super(M..
# Fashion MNIST 데이터셋 알아보기 1. 사용할 모듈 import 2. 이미지 - > tensor ToTensor() 사용 더보기 # torchvision Transforms 1. ToTensor 이미지를 파이토치 텐서로 변환 2. Resize 이미지 크기 조정 3. Normalize 주어진 평균과 표준편차를 이용하여 정규화 4. RandomHorizontalFlip 무작위로 이미지의 오른쪼고가 왼쪽을 뒤집는 기능 5. RandomCrop 이미지를 무작위로 자르는 기능 3. 학습용 트레이닝 셋과 성능 평가용 테스트셋 준비 FashionMNIST 데이터셋 4. 'DataLoader' 준비 batch_size = 16 더보기 # DataLoader torchvision.datasets 으로 생성된..
파이토치 :딥러닝 프레임워크로 쉽게 GPU를 활용해서 인공신경망을 만들어 학습시킬 수 있도록 돕는다. #1 텐서의 차원 import torch x = torch.tensor([[1,2,3],[4,5,6],[7,8,9]]) x = torch.unsqueeze(x,0) x = torch.squeeze(x,0) print("size ", x.size) print("shape", x.shape) print("랭크", x.ndimension()) torch.unsqueeze() , torch.squeeze() , x.view 는 텐서의 원소 수를 유지하면서 모양과 차원을 바꿈 그래서 만약 원소 수와 다르게 모양이나 차원을 바꾸려고 하면 error가 발생한다. #2 행렬의 연산 import torch w = tor..