본문 바로가기

Artificial Intelligence17

[PyTorch] PyTorch란? 파이토치의 구성요소, 파이토치로 텐서 조작하기 [PyTorch] PyTorch란? 파이토치의 구성요소, 파이토치로 텐서 조작하기 PyTorch(파이토치)? 딥러닝 프레임워크에는 Tensorflow와 PyTorch가있다. 교육용이나 회사에서는 Tensorflow를 많이 사용했지만 Tensorflow에 비해서 절차가 간단하고 속도도 빨라 최근 연구소에서 PyTorch를 많이 쓰고있는 추세라고한다. (결국에는 사용하는 프레임워크는 회사마다 다르기 때문에 둘 다 해두는 것이 좋겠다.) 나도 Tensorflow로 딥러닝을 먼저 접했지만 최근에 PyTorch로 모델링을 할 일이 있어서 공부해보기로 했다. ○ GPU 및 다른 가속기의 성능을 사용하기 위한 Numpy를 대체할 수 있다. ○ 신경망 구현에 유용한 자동미분 라이브러리를 제공한다. PyTorch(파이토.. 2022. 11. 19.
[PyTorch] 파이토치로 선형회귀 구현하기 / nn.Module [PyTorch] 파이토치로 선형회귀 구현하기,nn.Module Import import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim torch: 텐서를 생성하는 라이브러리 torch.autograd: 자동미분 기능을 제공하는 라이브러리 torch.nn: 신경망을 생성하는 라이브러리 torch.multiprocessing: 병럴처리 기능을 제공하는 라이브러리 torch.utils: 데이터 조작 등 유틸리티 기능 제공 torch.legacy(./nn/.optim): Torch로부터 포팅해온 코드 torch.onnx: ONNX(Open Neural Network Exchange) 서로 다른 프레임.. 2022. 11. 19.
Hands-On Machine Learning(핸즈온 머신러닝) - 10장 연습문제 Hands-On Machine Learning(핸즈온 머신러닝) - 10장 연습문제 1장부터 9장까지는 머신러닝 내용이니, 머신러닝 카테고리 10장부터 19장까지는 딥러닝 내용이니, 딥러닝 카테고리에 포스팅을 하기로 하겠다. 1번 텐서플로 플레이그라운드를 방문해서 연습문제에 나온대로 사용해보세요. Tensorflow — Neural Network Playground Tinker with a real neural network right here in your browser. playground.tensorflow.org 텐서플로우 플레이 그라운드는 딥러닝 신경망 시뮬레이터이다. 복잡한 코드를 입력하지 않고, 클릭만으로 어떤 신경망들이 어떤 효과를 내는지 시각적으로 한눈에 볼 수 있다. 신경망의 레이어를 .. 2022. 7. 19.
Hands-On Machine Learning(핸즈온 머신러닝) - 2장 연습문제 Hands-On Machine Learning(핸즈온 머신러닝) - 2장 연습문제 이 장에서 소개한 주택 가격 데이터셋을 사용해 문제를 푸세요. 1번 서포트 벡터 머신 회귀(sklearn.svm.SVR)를 kernel=“linear”(하이퍼파라미터 C를 바꿔가며)나 kernel=“rbf”(하이퍼파라미터 C와 gamma를 바꿔가며) 등의 다양한 하이퍼파라미터 설정으로 시도해보세요. 지금은 이 하이퍼파라미터가 무엇을 의미하는지 너무 신경 쓰지 마세요. 최상의 SVR모델은 무엇인가요? SVM(서포트 백터 머신)은 선형, 비선형, 회귀, 이상치 분석 등 다양하게 사용할 수 있는 매우 강력한 머신러닝 모델이다. 내가 알기로는 딥러닝이 사용되기 전까지는 SVM모델을 사용했다고 들었다. SVM의 회귀를 SVR이라고 .. 2022. 7. 17.
Hands-On Machine Learning(핸즈온 머신러닝) - 1장 연습문제 Hands-On Machine Learning(핸즈온 머신러닝) - 1장 연습문제 1. 머신러닝의 정의 (30p) 명시적인 프로그래밍 없이 기계가 데이터로부터 스스로 학습할 수 있는 시스템을 만드는것이다. 학습이란 어떤 작업에서 주어진 성능 지표가 더 나아지는 것을 의미한다. 2. 머신러닝이 도움을 줄 수 있는 문제 유형 네가지 (33~34p) - 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 - 전통적인 프로그래밍 방식으로는 해결 방법이 없는 복잡한 문제 - 유동적인 환경에 적응해야하는 문제 - 사람에게 통찰을 제공해야하는 문제 3. 레이블된 훈련세트란? (36p) 지도학습에서 각 sample에 대해 원하는 정답(label)을 담고 있는 훈련세트. 4. 가장 널리 사용되는 지도학습 작업 두 가.. 2022. 7. 4.
머신러닝(Machine Learing)이란? 오차함수 MAE(mean absolute error)/MSE(mean squared erro) 머신러닝(Machine Learing)이란? 오차함수 MAE(mean absolute error)/MSE(mean squared erro) 블로그를 운영하면서 머신러닝에 대해 글을 쓴 것이 없다느는 것을 알고 놀랬다. 어제 공부한 내용을 토대로, 머신러닝이란 무엇인지? 머신러닝의 오차함수에 대해서 포스팅하려고한다. 머신러닝이란? 데이터에서부터 학습하도록 컴퓨터를 프로그래밍을하는 과학.또는 예술(?)이라고 책에 써있다. 말 그대로 기계학습이다. 이런 사전적인 의미말고, 수학적으로 머신러닝이 무엇인지? 목적은 무엇인지 살펴보자. 다음과 같은 샘플 그래프가 있다. 그래프를 해석해본다면, 삶의 만족도가 높을 수록 GDP도 높다는 것을 알 수 있다. 이 그래프의 정보를 토대로 삶의 만족도와 GDP와의 관계를 예측.. 2022. 7. 1.
[딥러닝] LSTM(Long Short Term Memory) [딥러닝] LSTM(Long Short Term Memory) LSTM의 구조도 이다. 앞선 RNN의 구조와 크게 별 다를게 없어 보이지만 자세히 보면 무언가가 추가 됐다. RNN은 A로 넘어가는 선? (화살표)이 하나지만 LSTM은 한 줄이 더 생겼다. 윗쪽 선은 Long Term Memory(장기기억) 아랫쪽 선은 Short Term Memory(단기기억) 이다. 잠시 Vanilla RNN의 문제점을 생각해보자면 첫 인풋 데이터의 A(weight)가 마지막까지 못간다는 것이였다. 하지만, LSTM에서는 중요도가 높은 인풋데이터를 Long Term Memory에 넣어줌으로써 weight의 값이 마지막까지 유지될 수 있게 해준다. A안에는 복잡한 게이트들이 다양하게 있다. 만약 Long Term Memo.. 2022. 2. 25.
[딥러닝] RNN (Recurrent Neural Network) - 순환신경망 구조 [딥러닝] RNN (Recurrent Neural Network) - 순환신경망 구조 RNN은 자연어 처리를 한다던지, 주가 예측을 한다던지 시간의 흐름이 매우 중요한 시계열 데이터에 적합한 모델이다. 기본적인 RNN 구조도이다. 하나씩 뜯어보면 인풋값이 X0으로 들어가서 -> A에서 어떤 가중치(w)에 대한 계산이 되고, -> 결과값이 h0이된다. -> 첫번째 A 가중치(w)가 두번째 A로 전달이 되면서 인풋값 X1과 합쳐져고 -> 결과값 h1이 된다. -> 두번째 A 가중치가 세번째 A로 전달이 되고 인풋값 X2와 합쳐지고... 이런식으로 계속 전달 전달 전달...이 되는 구조인 것을 확인할 수 있다. 위에 기본적인 구조를 Vanilla RNN이라고 한다. 가장 초기 버전이다. 이 Vanilla RN.. 2022. 2. 24.
[딥러닝] Embeding Layer / 차원의 저주 (curse of dimensionality) /자연어 처리 / 단어 백터화 [딥러닝] Embeding Layer / 차원의 저주 (curse of dimensionality) /자연어 처리 / 단어 백터화 차원의 저주 (curse of dimensionality) I am a boy and I am not a girl 위 문장의 각각의 단어들에 고유의 숫자를 줘보았다. I -> 0 am -> 1 a -> 2 boy -> 3 and -> 4 not -> 5 girl ->6 이 숫자들을 one-hot encording을 해줘야한다. 왜냐하면 각각의 숫자에 연관성을 없애주기 위해서이다. 예를 들면 am + a = boy 이런식으로 관계가 지어져서 이상한 해석을 할 수 있기 때문이다. one-hot encording을 해주면 I -> [1, 0, 0, 0, 0, 0, 0 ] am ->.. 2022. 2. 23.
[딥러닝] Windowed Dataset 구성 옵션 ( Tensorflow 시계열 데이터 분석) / 딥러닝 미래 예측하기 Windowed Dataset Tensorflow 시계열 데이터 분석 window size (윈도우 구성) [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 라는 데이터들이 있을 때 첫 번째부터 다섯번째의 데이터, 즉 0, 1, 2, 3, 4를 가지고 6번째 데이터 5의 값을 예측할 수 있다. 이 때 window_size = 5라고 한다. shift 위에서 shift = 1 이라는 옵션을 주면 [ 0, 1, 2, 3, 4 ] -> 5 [ 1, 2, 3, 4, 5 ] -> 6 [ 2, 3, 4, 5, 6 ] -> 7 [ 3, 4, 5, 6, 7 ] -> 8 [ 4, 5, 6, 7, 8 ] -> 9 이런식으로 예측하게 된다. shift = 2 라면, [ 0, 1, 2, 3, 4 ] -> 5 [ 2,.. 2022. 2. 22.
반응형