파이썬과 파이토치가 딥러닝에 사용되는 이유, 개념과 활용사례
파이썬(Python)은 매우 신속한 속도로 애플리케이션을 개발 할 수 있는언어 입니다. 그래서 언어가 간편하여 가독성을 최대한 좋게하여 프로그램을 관리하거나 유지보수할때 시간과 비용을 매우 아깔 수 있습니다. 또한 파이썬과 같이 활용할 수 있는 파이토치(Pytorch)라는 라이브러리와 함께 사용할 수 있고 매우 광범위하게 활용 할 수 있습니다. 쉽게 말하자면 누군가가 프로그래밍한걸 쉽게 가져다 쓸 수 있다는 말입니다. 또는 분야마다 특화된 파이썬 전용패키지가 존재합니다. 예를 들어 딥러닝에 특화된 파이토치라는 전용패키지가 존재하여 쉽고 무료로 가져다 사용할 수 있습니다. 이러한 장점이 있기 때문에 사용해보고나니 너무 편하고 생산성이 매우 올라 계속사용하고 있는것이지요. 다른 장점들도 많이 있는데 파이썬과 파이토치를 사용하는 가장 큰 이유는 이것입니다. 반드시 프로그래밍 언어를 사용하다보면 오류가 나기 마련입니다. 오류가 물론 안 좋긴하지만 오류에 익숙해져야 하는 프로그래머들은 쉽게 디버깅 할 수 있는 파이썬을 매우 선호합니다. 속도가 느리다는 단점이 있긴하지만 파이썬이 제공하는 장점들은 단점을 훨씬 뛰어 넘습니다.
앞서말한 파이썬은 유연한 장점이 있습니다. 그래서 파이토치는 기본적으로 파이썬을 기반으로하며 페이스북에서 처음 만들어 졌습니다. 그리고 일본에서도 소스가 만들어져 파이토치 프레임워크에 들어가게 되었고 또 페이스북에서 다른 소스를 추가해 지금의 파이토치가 탄생하게 되었습니다. 기본적으로 딥러닝에 특화되어있어 자연어처리나 컴퓨터의 음성 등을 활용할 수 있고 Numpy라는 시스템과 같이 작동하여 GPU와 호환이 됩니다. 또한 자동 미분을 해서 저같은 프로그래머의 힘을 줄여주고 있습니다. 그리고 맨처음 위에서 말한 오류를 잡는 과정인 디버깅이 간편하다는 강력한 특징들이 있습니다. 왜 GPU라는 그래픽카드 처리장치를 활용하는 것일까요? 바로 GPU는 수많은 간단한 코어로 되어 있기때문에 딥러닝 인공신경망을 활용할때 빠른 속도로 학습을 시킬 수 있습니다. 그렇다면 어느정도 속도 차이가 나길래 CPU가 아니라 GPU를 사용하는 것일까요? 프로그래밍하여 작동을 시켜보면 약 14~15배 정도 차이가나기 때문에 CPU대신 GPU를 사용하는 것입니다. 보통 많은 사람들이 CPU를 사용할때 컴퓨터 속도가 빠르다는것을 알고 있어 딥러닝도 CPU로 하면 좋지 않을까 하는데 파이토치의 딥러닝은 GPU를 활용하는것이 좋습니다. 여기까지 따라오셨다면 파이토치가 왜 딥러닝에 활용되고 있는지 아셨을거라 생각합니다. 말 그대로 비용과 시간을 아낄 수 있는 가장 큰 장점이 있기 때문입니다. 하지만 그만큼 단점도 같이 존재합니다. 파이썬 전용 언어로 만들어졌기 때문에 그 자체 성능과의 싸움에서 타협을 해야 합니다. 이게 무슨말이냐면 딥러닝에 사용되는 다른프로그램에서 사용하는 그래프같은걸 사용하지 않는다는말입니다. 그리고 라이브러리에 의존도가 매우 높습니다. 예를들면 CPU와 GPU 동기화를 유지해야하는데 우리 같은 일반사람들은 문제가 생긴다면 접근하는데 한계가 있습니다. 어떤 상황이든 대응할 수 있는 권리같은게 필요한데 이부분이 크게 자유롭지 않다는 말입니다. 그래서 어느정도 성능같은건 한계가 있지만 파이토치는 사용자가 사용하기 매우매우 간편한다는 장점이 있기때문에 상황에 따라 활용하는게 매우 좋다고 생각됩니다.
단점과 장점을 알고 프로그램을 사용해야된다는 것을 알고 어떻게 활용할 수 있는지 알아보도록 합니다. 가장 빼놓을 수 없는 영역이 텍스트 분류 쪽입니다. 문서를 순위화 하는것도 중요합니다만, 텍스트를 분류하는것에 어떤 장점이 있고 정말 우리가 사용하는데 필요한가라는 가능성을 보고 있습니다. 왜냐하면 우리 눈에 보이는 모든것은 텍스트로 이루어져있기때문입니다. 현재 오디오나 영상이 많은것을 이야기하지만 텍스트 즉, 문자에 관련된 문제는 끊이질 않고 있습니다. 그래서 그런지 알고리즘을 어떻게 개선해나가야하는지 중요한 문제라고 생각됩니다. 그리고 농장에서 식물이 병들었는지 안들었는지 파악하는 알고리즘도 있습니다. 수많은 영상과 사진을 이용해서 학습을 시켜 저 농작물이 병이 들었는지 안들었는지 파악하는것입니다. 알고리즘을 사용해서 결과를 아는것도 중요하지만 어느정도의 정확성을 가지고 있는지도 중요합니다. 그래서 훈련과정이 매우 중요한데 어떻게 훈련시킬지 생각해볼 수 있습니다. 그래서 농부들이 사진이나 영상을 찍어 플랫폼에 올리면 플랫폼은 학습을 통해 정확도를 올릴 수 있습니다.
파이썬(Python)과 파이토치(Pytorch)가 딥러닝에 사용되는 이유와 간단하게 개념 및 활용사례를 다뤄보았습니다. 가만보면 사람처럼 학습을 해서 무엇인가 결과물을 만들어낸다는 자체가 너무 대단한거같습니다. 점점더 정확도를 높혀간다면 우리가 원하는 결과물을 얻어낼수있을까요? 정말 기대가 되는거같습니다.
'지식&정보' 카테고리의 다른 글
화이트해커(WhiteHacker) 하는 일과 전망, 해킹은 나쁜것이 아니다!? (0) | 2021.02.14 |
---|---|
데이터, 이미지, 음성 라벨링이 필요한 인공지능의 관계 정의와 필요성 (0) | 2021.02.12 |
웹 크롤링과 데이터 스크래핑의 차이점 비교, 그리고 필요성에 알아보자. (0) | 2021.02.11 |
3d프린팅의 원리와 기술 활용 사례 장점, 시작은 모델링부터 (0) | 2021.02.10 |
HPC, 슈퍼컴퓨터(SuperComputer) 원리와 역사, 우리가 사용하는 컴퓨터와 차이점은? (0) | 2021.02.09 |