본문 바로가기

Artificial Intelligence/Deep Learning14

[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.
[딥러닝] 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.
[딥러닝] Activation Function 활성함수 한번에 이해하기(Sigmoid, Softmax, Relu) [딥러닝] Activation Function 활성화함수 딥러닝의 장점은 선형함수를 깊게 쌓을 수 잇는 것이 장점이다. 하지만 선형함수를 깊게 쌓아봤자 선형함수가 되어 복잡한 모델링을 하기가 어렵다. 이 문제를 해결하기 위해서 모델 레이어를 쌓을 때 선형 함수 사이사이에 선형함수가 아닌 것을 번갈아 넣어줌으로써 복잡한 문제를 풀 수 있다. 이 비선형 함수를 활성 함수(activation funtion)라고 하고, relu, sigmoid, softmax 등이 있다. 위 설명대로 activation을 넣어서 모델링을 해보면 model = Sequential([ tf.keras.layers.Flatten(input_shape = (28,28)), tf.kearas.layers.Dense(512) tf.kea.. 2022. 2. 18.
[딥러닝] Convolution Neural Network (CNN) 합성곱 신경망 - 간단하고 쉽게 이해하기 Convolution Neural Network (CNN) 합성곱 신경망 CNN Dense 레이어 = 연산을 담당하는 레이어이고. CNN = 들어오는 데이터(features)에 대한 특성을 추출하는 레이어이다. 따라서 모델링을 할 때에 특성 추출을 먼저한 후 연산을 해야하니 윗부분이 특성을 추출하는 레이어가 자리잡고 아랫부분이 연산을 담당하는 레이어가 자리잡는다. input 레이어는 하나의 이미지에 대해서 굴곡 등..특성을 추출하고 그 추출한 이미지를 모아둔 것을 feature maps라고 한다. 계속 cnn층을 깊게쌓으면서 특성 추출을 해가는 것이 위 그림에 대한 설명이다. 여기까지가 CNN의 기본 개념 끝! Dense VS CNN 예를들어 고양이 사진을 가지고 이 사진이 고양인지 아닌지를 알 수 있는.. 2022. 2. 17.
[논문리뷰] VGG Net - Very Deep Convolutional Networks for large-scale image recognit [딥러닝] VGG Net - 논문리뷰 -Very Deep Convolutional Networks for large-scale image recognition 논문 링크 ↓↓↓↓↓↓ https://arxiv.org/pdf/1409.1556.pd VGG net은 유명한 레이어이자 실무에서도 많이 쓰이는 모델이라고한다. 세계 이미지 분류 대회가 있다. 거기서 2014년에 준우승을 한 모델. 살짝 여담으로 인공지능을 활용한 대회는 사람의 성능을 뛰어넘으면 종료되는데 2017년에 종료됐다니..조금 무섭다. 이제 이미지 분류는 기계가 사람보다 더 잘한다는 그런걸까..ㅎ 먼저 총 6개의 구조를 볼 수 있다. 구조도를 보면 마지막 FC-1000인것을 보아 Dense(1000, 'softmax')이므로 1000개의 카.. 2022. 2. 16.
반응형