-
-
줄리아 머신러닝, 딥러닝, 강화학습 - 빠르고 우아하게 데이터 분석부터 강화학습까지 인공지능 실무 스킬업 ㅣ 제이펍의 인공지능 시리즈 (I♥A.I.) 43
김태훈 지음 / 제이펍 / 2023년 10월
평점 :
줄리아는 기존 파이썬의 가진 한계를 벗어나기 위한 언어로 주목을 받고 있습니다. 프로그래밍 언어 지수를 보여주는 티오베(Tiobe)에서 줄리아는 현재(2023.10.24) 28위를 했습니다. (참고로, 파이썬이 1등으로 14.82%이고 C, C++, 자바, C#이 뒤를 이었다.) 비록 파이썬이나 R에 비해 적은 사용자 수로 인해 패키지를 비롯해 개발 생태계가 부족하지만, 주피터 노트북과 비주얼 스튜디오 코드에서 모두 사용이 가능한 확장성과 뛰어난 성능이 뒷받침해주니 앞으로 더 인기가 상승할 언어로 보입니다.
『줄리아 머신러닝, 딥러닝, 강화학습』의 구성을 보자면 1장에서는 줄리아가 가진 장점과 문법을 설명하고, 2장에서는 데이터 분석에 필요한 환경 설정과 도구들을 소개합니다.
3장에서는 줄리아의 패키지인 MLJ를 이용해 머신러닝을 수행하면서 파이썬의 사이킷런과의 차이와 줄리아가 가진 타입 시스템과 범주형 변수의 장점을 알아봅니다.
4장에서는 파이토치와 텐서플로에 비해 코드베이스가 단순한 딥러닝 패키지인 플럭스를 활용하여 컴퓨터 비전, 자연어 처리를 실습합니다.
5장에서는 정책 기반 알고리즘과 가치 기반 알고리즘을 다루며, 줄리아로 심층 강화학습을 활용하면서 줄리아의 빠른 실행 성능을 확인합니다.
줄리아는 파이썬과 같이 동적인 언어이면서 C와 같은 정적 언어에 가까운 실행 속도를 보여준다. 굳이 빠른 실행을 위해 벡터화를 하거나, 병목 코드를 C와 같은 언어로 짜는 등의 수고를 덜 수 있다. 또한 멀티스레딩, 분산 컴퓨팅 등을 이용하여 병렬 연산을 쉽게 할 수 있다.
이 책에 대하여
파이썬은 GIL(Global Interpreter Lock)로 인해 멀티스레딩 시 다수의 코어를 충분히 활용하는 이점을 누리지 못하여 멀티프로세싱을 해야하지만, 줄리아는 그런 제약이 없어 멀티스레딩만으로 쉽게 멀티코어를 활용한 병렬 연산이 가능하다.
p.87
프로젝트별로 격리된 환경을 만들수 있어야 프로젝트 간 충돌을 피할 수 있고, 다른 연구자가 재현할 수 있는 환경 정보를 제공할 수 있다. 파이썬에서 가상 환경을 사용하는 이유도 이 때문이다. 줄리아에서는 패키지 관리자를 통하여 쉽게 프로젝트별 환경을 관리할 수 있다.
p.106
책의 장점으로는 첫째, 줄리아가 가진 장점을 잘 설명합니다. 줄리아 기본 문법부터 시작하여 줄리아의 특징인 동적 언어의 생산성과 정적 타입의 성능을 동시에 가질 수 있는 타입 시스템과 다중 디스패치(Multiple Dispatch), 코드 특화, 라이브러리, GPU를 활용한 CUDA 프로그래밍에 대해 자세히 알려줍니다.
둘째, 머신러닝·딥러닝·강화학습을 실습하며 배울 수 있습니다. 줄리아의 MLJ 패키지를 사용한 머신러닝부터 딥러닝에서 자연어 처리와 이미지 처리, 강화 학습에서 DQN, A2C 등 강화 학습 알고리즘을 직접 구현하면서 머신러닝, 딥러닝, 강화학습에 대해 깊고 넓게 배울 수 있었습니다. 또한 기존의 머신러닝, 딥러닝 학습자와 실무자를 배려한 친숙한 데이터셋을 사용했습니다.
셋째, AI 실무를 익힐 수 있습니다. 데이터와 모델을 준비하고 학습·예측·평가·튜닝에 이르는 워크플로와 함께, 직접 파이프 라인을 구축하고, 앙상블 기법을 통해 모델을 결합하면서 AI 실무를 배울 수 있었습니다.
마지막으로 저자의 경험에서 비롯한 해결 방법을 알려줍니다. 공식적으로 파이썬만 지원하는 구글 코랩에서 줄리아를 사용하는 방법, 윈도우에 트랜스포머를 설치하는 법, 도커를 이용한 환경 설정 등 실습을 하다가 막힐 때 유용했습니다.
아쉬운 점은 모델 배포를 다루지 않았다는 점이었습니다. 책에서 제시한 HTTPjl, Genie.jl에 대해 문서 정리가 잘 되어있기는 하였지만, 상세한 배포 과정까지 알려주지 않아 아쉬웠습니다.
추천 도서로는 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로』 개정 3판입니다. 이 책은 줄리아 머신러닝, 딥러닝, 강화학습에 부족한 이론적 설명이 쉽게 설명하고, 적당한 실습으로 이해를 도와주는 책입니다. 머신러닝과 딥러닝의 기본기를 다지고 싶은 분에게 추천합니다.
『줄리아 머신러닝, 딥러닝, 강화학습』은 줄리아의 기초부터 데이터 분석, 머신러닝, 딥러닝, 컴퓨터 비전, 자연어 처리, 심층 강화학습까지 폭넓게 다룬 책입니다. 줄리아의 특징과 MLj, 플럭스 패키지를 활용하면서 파이토치와 케라스의 차이점을 확인하고 실습을 진행하면서 줄리아가 가진 강점을 확인할 수 있었습니다. 딥러닝에서 문제가 되는 병목현상을 해결하고, 강화학습에서는 메서드 최적화로 인해 빠른 속도로 동적인 환경을 예측하는데 탁월하였습니다.
이 책은 AI 실무자를 겨냥한 책으로 머신러닝, 딥러닝, 강화학습의 기초적인 내용을 설명하지 않기 때문에 인공지능을 처음 배우는 사람에게 어려운 책이었습니다. 머신러닝, 딥러닝, 강화학습을 이해한 후 읽는 것을 추천을 드립니다.
머신러닝 프로젝트를 경험해본 적이 있거나 기존의 파이썬 환경에서 더 나은 성능을 원하시는 분들에게 알맞은 책입니다. 학계에 계신 분들에게 특히 유용해 보이는데, 특히 자연, 과학 분야에 패키지가 잘 발달되어 있었습니다.
저자가 줄리아를 사용하면서 우아함을 느꼈듯이 많은 사람들이 줄리아를 점차 활용하면서 우아함을 느낄 수 있기를 바랍니다.
해당 서평은 출판사로부터 책을 제공받아 작성했습니다.