줄리아 머신러닝, 딥러닝, 강화학습 리뷰

falconlee236

·

2023. 10. 25. 21:14

반응형

최근 컴퓨터 과학 분야에서 딥러닝은 뜨거운 감자이다. 컴퓨터 공학 분야에서는 당연히 쓰는 것은 물론, 다른 공학분야에서도 사용하고 심지어 공학이 아닌 인문 사회 분야에서도 인공지능을 다루는 것은 당연한 소양이 되어가고 있다. 인공지능을 연구하고 개발하는 것은 어렵다. 당장 인공지능을 이해하려면 내가 떠오르는 개념만 해도 수십가지이다. 탄탄한 수학적 베이스를 기반으로 해서 프로그래밍적 사고를 갖추고 있어야 인공지능을 제대로 이해할 수 있다.

 

하지만 이런 인공지능을 대중들이 쉽게 접근하게 될 수 있었던 이유는 바로 파이썬이라는 언어 때문이라고 생각한다. 파이썬은 데이터과학, 딥러닝에 특화된 프로그래밍 언어이고 동적 타입과 인터프리터라는 방식을 가지고있다. 파이썬은 동적 타입을 가지고 있기 때문에 코드를 작성하는데 타입을 명시할 필요가 없어서 코딩하는데 자유도가 높고, 딥러닝을 사용하는데 알아야할 코드 문법은 다른 언어에 비해서 단순하다는 장점 때문에 프로그래밍 언어를 많이 이해하지 않다고 해도 조금만 본다면 코드를 쉽게 이해할 수 있다는 것이 장점이다. 단적으로 예를 들자면 딥러닝 코드를 c언어나 c++로 작성했다고 한다면 이렇게까지 머신러닝/딥러닝 시장이 성장하지 않았을 것이다. 하지만 이런 파이썬의 치명적인 단점은 바로 너무나도 느리다는 점이다. 파이썬은 인터프리터이기 때문에 실행 시간전에 컴파일을 하는 AOT(Ahead of Time)방식이 아니라 JIT(Just in time)방식이고 이는 런타임에 한줄씩 머신 코드로 바꾸는 방식을 채택하고 있는데, 정말정말 느리다. 이런 단점은 파이썬에서 사용하고 있는 머신러닝/딥러닝 라이브러리인 pytorch와 tensorflow의 라이브러리 절반이 c계열 언어로 이루어져있다는 것으로 확인할 수 있다.

 

이러한 느린 파이썬의 단점을 보완하기 위해서 사람들은 다양한 방법을 고안했지만 파이썬이라는 언어를 바꾸지는 않았다. 하지만 이번에 소개할 줄리아라는 언어는 느리다는 파이썬의 단점을 보완하면서도 파이썬만큼 쉽게 사용할 수 있고 심지어 파이썬보다 빠르다는 장점을 가지고 있다. 이 언어의 단점은 딱 하나. 사람들이 몰라도 너무나도 모른다는 점이다. 

반응형

 

나도 이 책을 통해서 줄리아라는 언어를 처음 접했다. 내 상황은 머신러닝과 딥러닝을 공부하는 사람이고, tensorflow와 pytorch를 사용해서 코드를 돌려본 경험밖에 없다. 이런 내가 줄리아 언어로 작성한 이 책을 읽은 이유는 견문을 넓히고 싶어서이다. 언어는 많으면 많을 수록 기회가 확장되듯이, 프로그래밍 언어도 많으면 많을 수록 다양한 기회를 잡을 수 있을 것 같다는 이유에서이다. 그리고 이 이유에 대한 답은 이 책을 통해서 충족이 되었다.

 

이 책은 처음에는 줄리아 언어에 대한 소개가 이루어지고 그 다음에는 이 줄리아 언어를 어떻게 환경설정할지, 줄리아로 머신러닝기법  ex) 배깅, 스태킹 등등과 딥러닝 기법 ex) cnn, gan, transformer와 강화학습 개념을 쭉 소개한다. 내가 이 책을 읽으면서 느낀 점은 이런 새로운 언어를 이정도까지 예시를 들어서 설명한 책은 찾아보기 힘들다는 것이였다. 파이썬도 이 책처럼 파이썬 프레임워크로 딥러닝, 머신러닝, 강화학습을 한 책에서 심지어 예제코드를 가지고 설명하는 책은 아직 많이 보지 못했는데, 이를 정말 생소한 언어인 줄리아로 설명한다는 것 자체가 나에게는 이 책이 마음에 드는 요소였다. 

 

이 책에서 먼저 줄리아를 소개하는데, 줄리아에 대한 한국 정보가 많이 부족한 상태에서 공식 영어 문서를 번역해서 한국 저자가 이정도로 작성한 것은 정말 엄청난 노력이 들어갔다고 생각했다. 코드를 읽으면서 독자가 궁금할 부분은 바로 이어서 설명해주거나 다른 챕터에서 반드시 설명을 해준다. 이러한 점이 좋았다. 그래도 저자가 독자가 궁금한 부분이 어떤건지 알고 어디에 원하는 답이 있으니까 나중에 알아보자~라고 일단 여지를 남긴 점이 좋았다. 그 뒤로는 실제 예제 코드가 있는데, 이를 실행해보니까 실제로 잘 실행이 되는 모습도 보였다. 2023년 최신 판본이기 때문에 코드가 실행되지 않는다는 이런 문제는 걱정하지 않아도 괜찮을 것 같다. 

 

이 책은 줄리아라는 언어를 빼고 봐도 정말 저자의 노력이 많이 들어간 책인 것 같다. 줄리아 언어뿐만 아니라 파이썬의 다른 프레임 워크도 집필 해주면 좋겠다는 생각이 들 정도이다. 그정도로 언어 설명과 예제코드의 비중이 좋았다. 언어 설명이 지루해질 쯤에 머신러닝/딥러닝 예제 코드가 등장하는 것이 마음에드는 요소였다. 파이썬 딥러닝/머신러닝 코드를 조금 다루어본 사람이 이 책을 읽는 다면 파이썬과는 다른 시각에서 머신러닝 라이브러리를 사용하는 모습을 확인할 수 있을 것이고 시야가 확장될 것이다.

반응형