목록IT/Artificial intelligence (25)
하루 하루
https://zzsza.github.io/data/2018/02/17/datascience-interivew-questions/#%EC%9E%90%EC%97%B0%EC%96%B4-%EC%B2%98%EB%A6%AC 데이터 사이언스 인터뷰 질문 모음집 데이터 사이언스 분야의 인터뷰 질문을 모아봤습니다. (데이터 분석가 / 데이터 사이언티스트 / 데이터 엔지니어) 구직자에겐 예상 질문을 통해 면접 합격을 할 수 있도록, 면접관에겐 좋은 면접 zzsza.github.io
Sentence Segmentation 코퍼스의 문장 경계선이 어디인지 확인하는 문제이다. 예를 들어서, "Its length is 16.7 cm."라는 한 문장이 있다면 '.'을 기준으로 문장을 나누면 'Its length is 16.'와 '7 cm.' 두 개가 된다. 따라서 코퍼스의 특징에 따라서 나뉠 수 있도록 학습이 필요하다. treebank_raw로 sentence segementation을 학습하는 예제 import nltk sents = nltk.corpus.treebank_raw.sents( ) sents를 sents[:3]dmf 통해서 살펴보면 [['.', 'START'], ['Pierre','Vinken',',', '61', 'years', 'old',',','will','join', ..
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 의 단어에 ..
1. 선형회귀분석 주어진 데이터를 가장 잘 설명하는 직선을 찾는것 - simple linear regression : 독립변수가 하나인 경우 - multivariate linear regression : 독립변수가 여러개 인 경우 단순선형회귀분석을 한다는 의미는 y 와 x라는 데이터가 주어졌을 때, y = wx +b 라는 직선의 방정식에서 데이터를 가장 잘 표현하는 w와 b를 찾는다는 것과 동일합니다. 2. 평균제곱오차 주어진 x를 w와 b를 사용해 계산한 예측값 이 실제 값과 유사해야 의미가 있습니다. 따라서, 여러 실제값과 예측값의 차이를 계산하는 방법들이 존재하고, 평균 제곱오차는 그 중에서도 많이 사용되는 방법입니다. 예측값 y ̂ 에서 y 를 빼 차이를 구하고 더합니다. 이 때, 차이가 -인 경..
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=220680532 머신러닝 도감 복잡한 머신러닝 알고리즘을 그림과 함께 하나하나 살펴보는 입문서이다. 전문가가 아닌 사람도 머신러닝을 이해할 수 있도록 지도 학습과 비지도 학습에 해당하는 17가지 알고리즘을 설명한다 www.aladin.co.kr import matplotlib.pyplot as plt import pandas as pd from sklearn.datasets import load_wine data = load_wine() # 변수에 데이터세트 저장 df_X = pd.DataFrame(data.data, columns = data.feature_names ) # DataFrame : 특징을 엑셀의 ..
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=220680532 머신러닝 도감 복잡한 머신러닝 알고리즘을 그림과 함께 하나하나 살펴보는 입문서이다. 전문가가 아닌 사람도 머신러닝을 이해할 수 있도록 지도 학습과 비지도 학습에 해당하는 17가지 알고리즘을 설명한다 www.aladin.co.kr 머신러닝 1. 지도학습 Point : 정답이 있는 데이터 = 특징 ( 독립변수 ) + 레이블 ( 종속 변수 ) - 분류 문제 ( 이진분류 / 다중분류 ) : 정답이 일정한 분류에 속하는 것 로지스틱 회귀 , 나이브 베이즈 분류 - 회귀문제 선형회귀, 정규화, - 분류 & 회귀 서포트벡터머신, 커널기법을 이용한 서포트 벡터 머신, 랜덤 포레스트, 신경망, k-근접 알고리즘 ..
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=220680532 머신러닝 도감 복잡한 머신러닝 알고리즘을 그림과 함께 하나하나 살펴보는 입문서이다. 전문가가 아닌 사람도 머신러닝을 이해할 수 있도록 지도 학습과 비지도 학습에 해당하는 17가지 알고리즘을 설명한다 www.aladin.co.kr 1. 기본 그래프 %matplotlib inline # 그래프를 바로 출력 import numpy as np # 데이터 생성 import matplotlib.pyplot as plt #그래프 출력 x1 = np.linspace(-5,5,101) # -5에서 5까지 101 개의 데이터 생성 y1 = np.sin(x1) #sin 함수 plt.plot(x1,y1) 2. 그래프 ..
ㅁ인공지능 인공지능은 인간의 두뇌를 기계로 구현하는 것을 이야기하며 머신러닝과 딥러닝을 포괄한다. 즉, 컴퓨터 비전, 자연어 처리, 로봇 공학 등 사람의 지능이 필요한 것을 기계가 대체하도록 하는 것을 모두 이야기한다. 여기서 머신러닝은 인공지능을 만드닌 방식으로 기계에게 사람이 구체적인 로직을 설명하지 않아도 학습하는 것을 의미하며, 딥러닝은 머신러닝을 구현하는 기술 중 하나이다. 분류 예시 설명 플랫폼 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..
DQN ( Deep Q-Network ) 정해진 '환경(CartPole-v0)'에서 '에이전트'가 무작위로 '행동'하면서 행동에 대한 '보상'을 학습해 무작위 행동을 줄여가면서 정확도로 높여간다. 위의 그림에서 Memory는 다음과 같은 정보를 저장한다. ( state , action, reward, next_state ) 현재 상태 : state 현재 상태에서 한 행동 : action 행동에 대한 보상 : reward 행동으로 인해 새로 생성된 상태 : next_state memory 기억하기 위해서 만들어 놓은 queue 인데, 딥러닝이 모델들이 연속적인 경험을 학습할 때 초반의 경험에 치중해서 학습하기 때문에 최적의 행동 패턴을 찾기 어렵고, 새로운 경험이 전 경험에 겹쳐 쓰며 쉽게 잊어버리는 문제..
GAN GAN 은 서로 대립하는 두 모델이 경쟁해서 학습하는 방법이라고 이야기 할 수 있다. 생성자로 가짜 이미지를 생성해 진짜 이미지와 판별자가 구분하는지 확인하면서 서로 오차를 줄여간다. 이는 지폐 위조범과 경찰의 관계로 비유를 들 수가 있다. cGAN (conditional gan) 생성하고자 하는 아이템을 레이블로 지정해서 이미지를 생성한다.
적대적 공격 적대적 공격은 노이즈 생성해서 사람의 눈에는 구분이 되지 않지만 머신러닝 모델에게는 착시를 만들어 헷갈리도록 만드는 예제를 만드는 것이다. 위의 사진에서 왼쪽은 원본 사진이고, 오르쪽은 노이즈가 추가된 사진이다. 노이즈가 추가되어도 사람은 웰시코기로 분류하지만 적대적공격으로 딥러닝은 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를 통해서 번역문의 토큰을 차례대로 예상하는 역할을 한다. 대표사진 삭제 사진 설명을 입력하세요.
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..