케라스와 양대산맥으로 가장 많이 쓰이는 딥러닝 라이브러리는 파이토치라 해도 과언이 아닙니다.
파이토치는 텐서플로와 기술적으로 구조적인 차이가 크게 없지만,
파이토치에 기반한 딥러닝 모델을 공부하는 것은 필수적입니다.
이에 '파이토치 딥러닝 마스터' 라는 책을 통해 파이토치를 공부하고 블로그에 리뷰해보겠습니다.
요즘 ChatGPT3와 같이 인공지능 기술을 활용한 기술이 우리 일상에 큰 파장을 불러일으키고 있습니다.
이러한 혁신은 우리가 일일히 정해주는 것이 아닌 기계가 학습하여 논리정연한 결과를 보여주는 것에 의의가 있어 보입니다.
그렇다면 우리가 아는 인공지능은 도대체 무엇일까?라는 질문이 따르기 마련입니다.
케라스 딥러닝 카테고리에도 포스팅했지만 인공지능은 머신러닝, 딥러닝 분야를 포함한 모든 기술을 아우릅니다.
머신러닝이라고 분류되는 시스템은 광범위하게 피처 엔지니어링(feature engineering)에 의존했습니다.
피처 엔지니어링이란 다운스트림 알고리즘이 새로우 데이터를 기반으로 올바른 결과물을 낼 수 있도록 촉진하기 위해 입력 데이터를
변환하는 작업을 말합니다. 입력에 필요한 정의를 세우고 이를 구성해야했습니다. 가령 숫자를 분류해야 한다면 머신러닝에서는 이미지의 테두리선 분포를 추정해야하며 이를 위해 테두리선의 방향 분포로 분류기를 훈련시켰습니다. 더욱이 0과 8과 같은 숫자에 동그라미가 몇개 있는지를 특징(피처)으로 사용하여 분류하는데 활용하는 것 입니다. 이는 사람이 직접 해야하고 번거로운 과정이므로 꽤나 복잡했습니다.
하지만 딥러닝은 심층 신경망(deep neural network)를 사용하여 수학적 개체를 조작해 자동으로 생성해주는 역할을 합니다.
딥러닝은 방대한 데이터와 연산량을 증가시켜 학습하여 피처 엔지니어링의 과정이 필요 없게 된 것입니다.
입력과 출력이 동떨어진 관계(ex.강아지의 사진(입력) -> 강아지다(출력)) 를 보여도 딥러닝에서는 높은 수준으로
이들의 관계를 근사해주는 것 입니다.
즉 머신러닝에서는 입력을 위한 피처를 잘 정의하고 이를 수동으로 생성해내는 것이 중요한 반면,
딥러닝에서는 원본 데이터가 그대로 딥러닝 알고리즘에 들어가도 저수준에서 고수준으로 피처가 자동을 추출되는 형식입니다.
-딥러닝을 위한 파이토치
파이토치(pytorch)는 딥러닝을 위한 파이썬 프로그램 라이브러리입니다.
파이토치는 쉬운 디버깅, 현대적인 API등 다양한 장점이 있고 더욱이 가장 널리 사용되는 라이브러리 중 하나이기 때문에
딥러닝을 공부하기 위해서는 이를 활용할 줄 알아야 합니다.
파이토치는 입력과 출력의 복잡한 수학적 개체를 만들기 위해서 tensor텐서 라는 데이터 구조를 핵심으로 다룹니다.
텐서는 파이썬의 넘파이 배열과 유사한 다차원 배열로 생각하면 편합니다.
텐서와 전용 하드웨어를 통해 빠르게 수학 연산이 이뤄지고 이는 신경망 아키텍처, 분산 컴퓨팅 자원에서 훈련하는데 큰 이점을 줍니다.
이번 포스팅에서는 간략하게 딥러닝과 파이토치가 무엇이고 왜 그것을 사용하는지 알아보았습니다.
'Book Review > [파이토치 딥러닝 마스터] 리뷰' 카테고리의 다른 글
파이토치: 데이터 적합(훈련하기) (1) | 2023.05.12 |
---|---|
Data to Tensor: 이미지, 테이블, 시계열 , 텍스트 데이터를 텐서로 (0) | 2023.04.05 |
모델 학습 기법 기초 (0) | 2023.04.05 |
파이토치: 텐서(Tensor) 구조체 (0) | 2023.03.24 |