본문 바로가기

전체 글113

[Ch.02] 01 - CNN 모델 만들기 part 1 챕터 1 에서는 딥러닝이 무엇인가 그리고 신경망 모델을 통해서 간단한 학습 코드를 했습니다. 챕터 2 에서는 유명한 CNN 모델에 대해서 이야기 할까 합니다. 실제 수많은 이미지를 분류하는 모델로써 현재 딥러닝 발전에 많은 영향을 미쳤습니다. 1. CNN 은 무엇인가? 만약 4K UHD (840만개 픽셀) 이미지를 인공신경망으로 처리하려면 층마다 840만개 가중치가 필요합니다. 하지만 컴퓨터 계산하기에는 무리가 있고 이를 해결하고자 합성곱 (Convolution)을 만들게 됩니다. 합성곱 (Convolution) 을 간단하게 이야기 하면, 작은 필터를 이용해 이미지로 부터 특징을 추출해내는 방법 입니다. 예를 들어 아래 이미지를 학습한다고 했을 때, 이미지는 RGB 3개의 채널로 이루어져 있는데, 여기서.. 2023. 1. 4.
[Ch.01] 04 - 다중 분류 Mnist 딥러닝을 처음 배우면 자주 접하게 되는 손글씨 다중 분류 문제 입니다. 기본을 다지기도 좋고 pytorch 프레임워크의 구조 파악을 쉽게 하실 수 있습니다. 뒤에 많은 실습 문제들을 설명하겠지만, 큰 틀은 크게 여기서 벗어나지 않습니다. 1. 데이터 살펴보기 Mnist 데이터를 활용하여 숫자 손글씨 이미지가 랜덤으로 있을때, 정확도 95% 이상의 결과를 받을 수 있습니다. 코드 기반으로 이제 설명 하겠습니다. # 1. 데이터 살펴보기 import matplotlib.pyplot as plt from torchvision.datasets.mnist import MNIST from torchvision.transforms import ToTensor # # train=True, train=Flase 의 의미.. 2023. 1. 3.
[Ch.01] 03 - Pytorch 를 활용한 간단한 회귀분석 1. 회귀분석 회귀는 개별적인 레이블 대신에 연속적인 값을 예측하는 문제 입니다. 예를 들어 기상 데이터가 주어졌을 때 내일 기온을 예측하거나, 소프트웨어 명세가 주어졌을 때 소프트웨어 프로젝트가 완료될 시간을 예측하는 것입니다. 우리는 scikit-learn 을 활용해 보스턴 집값을 에측하는 학습 코드가 이번 내용 입니다. (* scikit-learn - 머신러닝용 파이썬 라이브러리 및 다양한 데이터셋을 제공) 2. 데이터 살펴보기 보스턴 집값 데이터셋을 코드로 먼저 살펴보겠습니다. from sklearn.datasets import load_boston dataset = load_boston() print(dataset.keys()) # 출력 # dict_keys(['data', 'target', '.. 2023. 1. 2.
[Ch.01] 02 - 딥러닝 프레임워크 추천 1. 파이토치 프레임워크 종류 딥러닝 모델에는 수많은 알고리즘이 있습니다. 데이터 처리, 이미지처리, 가중치계산 등 만들어야 할 알고리즘이 한두개가 아닙니다. 하나 하나 직접만들기에는 무리가 있기 때문에 프레임워크를 사용하여 만들 수 있습니다. 대표적인 프레임워크는 텐서플로, 케라스. 파이토치 가 있습니다. 저는 개인적으로 파이토치를 사용 하고 있습니다. 왜 파이토치 인가? 어떤 프레임워크가 점유율이 높을까? 생각해보면 답이 있습니다. 현재 파이토기가 가장 큰 점유율을 보이고 있으며 대형회사부터 대학 연구실까지 많은 사람이 이용하고 있습니다. 파이토치 코드는 파이썬 본래의 코드와 유사해 직관적이라는 장점도 있으며, 처음 딥러닝을 접하는 사람에게는 파이토치가 좋다고 생각 합니다. 물론 특정 업무나 특성 때.. 2023. 1. 1.
[Ch.01] 01 - 딥러닝 이란? 1. 학문적인 딥러닝 학문적으로 접근 했을 때, 딥러닝은 위의 이미지와 같이 AI 학문이라는 안에 DL 이 속해 있는 파트 입니다. AI(Artifical intelligence) 과거 1950년대에 AI(인공지능) 라는 학문이 생겼고, 인간의 지능을 갖고 있으며 기능을 갖푼 컴퓨터 시스쳅이며, 인간의 지능을 기계 등에 인공적으로 구현 한 것이라고 말 할 수 있습니다. ML(Machine Learning) 그러면 ML 은 무엇인가? 1980년대는 데이터가 많아지며 데이터 기반으로 학습을 해보자는 움직임을 통해서 만들어진 파트 입니다. 많은 데이터를 분석하고 가공하여 새로운 정보를 얻어서 어떠한 값을 예측하는 기술 혹은 학문이라고 할 수 있습니다. 예를 들어 행렬로 미지수를 찾는것, if문으로 가장 오차를.. 2022. 12. 30.
코인 채굴 종류에 대해서! 1. Pow (Proof Of Work) 일정한 알고리즘에 따라 연산을 먼저 작업한 노드(채굴기를 말함)에게 이를 증명함으로써 블록을 생성하고, 그 대가로 코인이 지급되는 방식 입니다. 코인 중에 비트코인이 대표적이며 채굴자들이 사용하는 방식입니다. 보통 컴퓨터 그래픽 카드를 이용해서 채굴을 하는데, 한창 열기가 올랐을때 그래픽카드 가격이 평균 시세보다 1.5배 올라었습니다. 단점 전력 및 컴퓨팅 자원 소모가 많음 해시파워 독점을 통한 51% 공격에 취약 (중국에 집중된 채굴) 블록 처리속도가 느리다. (현재 보완된 코인으로 많이 나오고 있습니다) 장점 은행 대체 가능성, 또는 가치저장 용도 POW 코인 비트코인(BTC), 지캐시(Zcash) 2. POS (Proof Of Stake) PoS 방식은 Po.. 2022. 8. 21.
블록체인(Block Chain) 이란? 블록체인 이란? 모든 코인들이 블록체인이라고 하는데 도대체 블록체인이 무엇 일까요? 그리고 한국 정부에서 코인거래는 쉬쉬 하고 있지만, 블록체인 기술에 대해서는 지원하겠다고 했습니다. 이번 시간에 블록체인 에 대해 이야기 하겠습니다. 1. 블록 (Block) 블록은 블록체인의 원소로서 디지털 장부를 말합니다. 즉 데이터를 저장하는 단위로, 바디(body)와 헤더(header)로 구분됩니다. Body에는 거래 내용이, Header에는 암호화와 관련되는 임의의 수 등이 코드에 담겨 있습니다. 여기서 처음 시작된 블록을 '제네시스 블록'이라고 부릅니다. 즉, 제네시스 블록은 그 앞에 어떤 블록도 생성되지 않은 최초의 블록을 말한다. ** 블록 = Body + Header 장부 = 거래내역 + 암호 위의 내용처.. 2022. 8. 20.
순환 신경망 (RNN) 이란? - BPTT [3편] BPTT (Back Propagation Through Time) - 시간 펼침 역전파RNN에서는 기존의 역전파 학습법으로 학습 할 수 없습니다.왜냐하면 기존에는 n 번째 타임스텝이라는 것이 존재하지 않았고,타임스텝이 생기면서 수많은 파라미터가 생겼기 때문 입니다.  데이터셋 구조 위의 그림 처럼 3가지 경우가 있습니다.다중 입력 - 단일 출력, 단일 입력 - 다중 출력, 다중 입력 - 다중 출력다중 입력 - 단일 출력순방향 추론시에는, 입력을 순차적으로 입력하여 마지막 입력시의 출력을 사용합니다.출력은 어디서 출력을 내줘야할지 모르기 때문에,마지막 출력에서는 End of Sequence (EOS) 라는 특별한 토큰을 날려주는 경우도 있습니다.  BPTT일반 역전파와 동일하게, 미리 시간적으로 펼쳐 둔 .. 2022. 3. 13.
순환 신경망 (RNN) 이란? [2편] 기본적인 순환신경망인 Vanilla RNN에 대해서 1편에서 설명 했습니다.하지만 현재는 Vanilla RNN 이 사용되고 있지 않습니다.어떠한 이유때문에 사용되고 있지 않는지, 그리고 더 발전된 RNN에 대해서 설명하도록 하겠습니다. 1. Vanilla RNN 문제점 잘 쓰이지 않는 가장 큰 이유는 기울기 손실 문제가 있습니다. 위의 그림에서 x0 가 입력이고 출력이 ht+1 이라고 할때, ht+1 에서 출발해서 쭉 x0 에 있는 정보를 가지고 와야 합니다.그렇게 하기 위해서 사이사이의 Gradient(기울기)가 다 만들어져야 하며, 역전파가 이루어질때 점점 기울기가 손실이 되는 문제가 있습니다.따라서, 시점차이가 많이 날 경우 학습능력이 굉장히 저하가 됩니다.그래서 현재는 RNN 기반의 변형 알고리즘.. 2022. 3. 11.