초소형 머신러닝 TinyML - 모델 최적화부터 에지 컴퓨팅까지 작고 빠른 딥러닝을 위한 텐서플로 라이트
피트 워든.대니얼 시투나야케 지음, 맹윤호 외 옮김 / 한빛미디어 / 2020년 8월
평점 :
장바구니담기



이번에 본 '초소형 머신러닝 TinyML'은 스릴러 소설도 아닌데, 보는 내내, 흥분된 마음을 감출 수 없었다. 예전에 안드로이드 앱을 배울 때, 아두이노를 처음 접했을 때와 비슷한 흥분이었다. 이는 내가 새로운 영역에 발 디뎠다는 소리이기도 하다. 


물론 아두이노나 인공지능을 처음 접하는 것은 아니다. 아두이노를 통해 얻은 지식으로 회로 개발, 장비 개발도 했으며, 인공지능은 현재 IT 업계의 대세인 만큼 틈틈이 공부하고 있는 상황이다. 그러나 이 두 영역의 콜라보는 처음이다.


인공지능과 아두이노의 콜라보가 뭔 대수냐 하겠지만, 이는 개발자 입장에서 또 다른 차원의 세계를 열어주는 열쇠가 될 수 있다 생각한다. 나의 가치도 높임과 동시에 새로운 시장을 개척할 수 있다는 소리이다. 단순 동작만 하는 회로에서 이젠 생각하고 판단하는 지능을 가진 전자기기 또는 전자 시스템을 개발할 수 있게 된다는 말이다. 아이디어에 따라 부가가치가 엄청난 장비도 개발할 수 있을 것이고, 대중에게 인기 있는 편리한 전자기기도 가능할 것이다.


내 경우, 가끔 공장에서 자동화 설비 관련 프로그래밍 일도 하고 그러는데, 그때마다 인공지능, 머신러닝을 도입하면, 제품 불량률이나, 산재 위험도 줄일 수 있겠다는 생각을 많이 하고 했다. 우리나라가 공장 자동화에 있어 세계 1위라는 소리를 많이 하는데, 머신러닝을 활용한 곳은 그리 많지 않다. 그만큼 이 분야에서도 활용은 무궁무진하다고 생각한다. 이런 여러 가지 이유로 '초소형 머신러닝 TinyML'를 보며, 내 손에 새로운 열쇠가 생긴다는 생각에 두근거리지 않을 수 없었다.




'초소형 머신러닝 TinyML'에서는 다양한 마이크로컨트롤러 보드 중에 실습하기 편리하고, 구하기도 좋은 아두이노 나노 33 BLE 센스, 스파크펀 에지, STM32F746G 디스커버리 키트를 사용하고 있다. 세 가지 보드가 각기 다른 특징과 구성을 가지고 있다 보니, 책에서도 보드별로 차이점이 발생하는 부분에 맞춰 각각 나눠 설명하고 있다. 책 하나로 3가지 보드를 활용할 수 있어, 1거3득이기도 하다.


우리가 보통 인공지능이니 머신러닝이니 하면, 대용량에 빠른 속도의 컴퓨터 시스템을 떠올리기 쉽다. 그래도 요즘엔 다양한 인공지능 툴이 등장하면서, 가정용 PC에서도 가능 해졌다. 그렇다고 금방금방 결과가 나오지는 않는다. 데이터에 따라선 GPU를 활용해도 시간이 많이 걸리곤 한다. 그런데 그런 인공지능을 PC의 CPU보다 성능이 많이 떨어지는 마이크로 컨트롤러에 사용하려면, 한계가 있다. 그래서 저사양 모바일 환경을 위해 2017년 텐서플로 라이트가 등장한 것이다. 과도한 기능, 복잡한 것들을 열심히 다이어트해서 수백 킬로 바이트 안에 들어갈 수 있게 만들었다. 이렇게 만들어진 텐서플로 라이트 인터프리터로 모델을 실행하여 최종적으로 1mW의 초전력에서도 사용할 수 있는 TinyML 애플리케이션을 만드는 것이다.


'초소형 머신러닝 TinyML'에서는 머신러닝 모델 구축과 훈련부터 해서, 호출어 감지 파트에서는 음성인식, 인체 감지 파트에서는 영상인식, 마술 지팡이 파트에선 동작인식을 다룬다. 가장 기초적이면서 활용도 높은 중요한 머신러닝 파트를 다 다루고 있는 것이다. 다만 책 한 권에 이런 내용을 다 담고 있다 보니, 아두이노 초보나 인공지능 초보에게는 어려울 수 있다. 완전 생초보에는 맞지 않으므로, 먼저 관련 지식을 쌓고 보는 것을 권장한다.




그리고 책 초반에는 텐서플로에 많이 이용되는 파이썬을 통해 설명을 하고 있으나, 이후에 나오는 실제 TinyML 애플리케이션 관련 코드들은 C++ 또는 C 언어를 사용하고 있다. 아두이노를 사용해 본 경험이 있다면, C++ 코드에 익숙하겠지만, 그렇지 않다면, 역시 C++ 문법서를 참고하며 보는 것이 좋을 것이다. 책에 코드에 대한 설명은 잘 되어 있지만, 주로 문법적인 거보다는, 텐서플로 모델 관련한 것이나, 머신러닝 학습에 대한 설명이 대부분이기 때문이다.


'초소형 머신러닝 TinyML'은 다소 어렵게 느껴질 수 있지만, 상당히 자세히 다양한 내용을 담고 있다. 보통 PC에서 만들어지는 일반 프로그래밍의 경우, 최종적으로 처리 속도 보완이나 반복되는 요구 사항 반영 정도가 어려움인데, 임베디드 프로그래밍은 생각지도 못한 다양한 문제를 만나게 된다. 일단 임베디드 기기는 loop 상태에서 작동되는 것은 항상 염두에 둬야 하고, 동시 처리를 인터럽트나 타이머 등을 이용해야 한다. 센서나 모터 등 각종 하드웨어 장비에 대한 이해도 가지고 있어야 한다. 전자 쪽 경험이 있는 사람이라면, 이미 다 아는 내용일 수 있으나, 마이크로컨트롤러 개발에 익숙하지 않은 사람, 일반 프로그램만 개발해 온 사람들에겐 생소하고 어려울 수 있는 부분이다. 그래서 PC 프로그램과의 차이, 어떤 것들을 미리 염두에 둬야 하는지 잘 설명되어 있다. 




예를 들면, 프로그램 크기 같은 것이 있다. 마이크로컨트롤러가 과거에 비해 속도나 메모리 용량이 커지긴 했어도, 지금의 PC와는 전혀 다르다. 얼마 전 보드 수정 개발에서는 초과되는 몇 kByte 줄이려 프로그램 전체를 일일이 수정했던 기억이 떠오른다. 그만큼 전자 보드에 들어가는 프로그램은 최적화되고 작은 코드로 만들어야 한다. 그리고 소비전력도 중요한 부분이다. 배터리를 쓴다면, 메인보드와 센서 소비 전력을 염두에 두고 개발해야 한다. 이런 것들은 문제를 겪어봐야 그 중요성을 깨닫게 되는 부분인데, '초소형 머신러닝 TinyML'에서는 이러한 부분에 대해 자세히 언급하고 있으며, 저자의 경험과 도움이 되는 다양한 노하우를 적절히 담고 있다. 활용 파트에서는 본문 곳곳에 적어 놨고, 머신러닝과 함께 고민해서 설계해야 할 사항을 14장 이후에 설계하기, 지연 최적화, 에너지 사용 최적화, 바이너리 크기 최적화, 디버깅과 같은 파트로 다시 정리해서 집중적으로 다루고 있다. 초보 개발자에겐 시행착오를 줄여주고, 개발 시간을 절약하는데 유용한 정보가 될 것이다. 




아울러 텐서플로 사용에 관한 다양한 경험도 그대로 담고 있다. 모델을 만들 때, 검증 손실, 훈련 손실에 대한 설명을 자세히 하고 있고, 어떻게 개선해 나가는지도 하나씩 과정으로 설명하고 있다. 프로그램에 사용하는 함수에 어떤 변숫값이 유용한지, 어떻게 값을 넣어 보면 좋은 지도 잘 알려주고 있어, 텐서플로 사용이 익숙하지 않은 사람에게 다양한 경험치를 쌓을 수 있게 돕고 있다.


'초소형 머신러닝 TinyML'을 먼저 읽어 본 입장에서, 보는 방법을 두 가지로 제시하고 싶다. 머신러닝 활용 측면이 가장 궁금하고 바로 해보고 싶다면, 그냥 책 순서대로 보면 되고, 텐서플로 라이트와 TinyML 애플리케이션 개발 전반을 살펴보고 활용을 보고 싶다면, 1, 2, 3장 보고, 13 ~ 21장 본 뒤 나머지를 4장부터 12장을 보는 것이 좋을 거 같다.




그리고 이 책이 어렵다고 느껴진다면, 책에서 사용하는 보드를 사서 하나하나 실습해보면, 쉽게 느껴질 수 있을 것이다. 나 역시도 아직 아두이노 나노 33 BLE 센스가 없어서 실습까지는 못했지만, 여러 경험 상, 컴퓨터나 전자 관련해서는 여러 번 책을 보는 것보다 한 번의 실습이 머리에 오래 남고, 이해도 빨랐기에 어느 정도 자신 있게 말할 수 있다. 책에 과정 하나하나 잘 담아 있으므로, 따라하기 어렵지 않을 것이다. 그리고 3가지 보드 중에 아두이노 보드를 추천하고 싶다. 나중에 활용하기도 좋고, 아두이노 관련 커뮤니티도 크게 형성되어 있어서, 자료나 도움 얻기도 쉽기 때문이다. 


실내 온도를 자동으로 조절하는데, 항상 인터넷으로 서비스 회사 프로그램 거치고, 저장하고, 다시 명령을 받고 그런다면, 참 번잡하다 생각될 것이다. 게다가 인터넷망이 끊기는 사고가 발생했을 때, 먹통이 된다면, 아주 난감할 것이다. 결국 소형기기도 자체 작동할 수 있는 기본적인 인공지능 기능을 가지고 있어야 하는 것이다. 


공장의 각종 기계를 보면, 다치지 않게 각종 센서로 처리되어 있지만, 실제 사고 예방에는 많이 미흡하고, 적용되는 동작도 제한적이다. 더욱 안전하게 하는 만들 수 있지만, 결국 비용 문제 앞에서 다 빠지곤 한다. TinyML로 개발한 저렴한 영상인식 기기가 있다면, 앞으로 얘기가 달라질 것이다.


이런 것들이 초소형 기기에 인공지능 적용이 절대적으로 필요한 이유라 생각하며, 동시에 새로운 상품을 탄생시킬 좋은 기회라고도 생각한다. 아직은 TinyML 관련 기술이 많은 부분 미흡할지 모르나, 전에 사람이나 동물의 눈을 추적하는 카메라가 나왔을 때 참 신기했는데, 이제 그런 것도 누구나 얼마든지 개발할 수 있는 좀 더 편한 길이 열리고 있다고 생각한다. '초소형 머신러닝 TinyML'은 그 길을 가는 훌륭한 가이드가 되어 줄 것이다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
내 몸 내가 고쳐 쓴다 2 - 자연치료제 상세 효능 내 몸 내가 고쳐 쓴다 2
이경원 지음 / 책과이음 / 2020년 12월
평점 :
장바구니담기



장기화된 코로나로 인해, 나뿐만 아니라 많은 사람들이 건강에 대한 관심이 부쩍 높아진 것을 느낀다. 하지만 하루 감염자가 2,000명 가깝게 생기고 있는 코로나 팬데믹 상황이라 모임도 통제되는 상황이라, 운동도 마음대로 할 수 없다. 지난번 너무 운동을 안 한 거 같아, 마음잡고, 마스크 쓰고 달려 봤는데, 건강 지키려다, 그전에 숨 막혀 죽을 거 같았다. 안 하던 운동을 갑자기 하려 하니 운동 거부감이라는 역효과만 오히려 생겼다. 


결국 게으른 나는 부족한 운동에 대한 보상심리 차원에서 간편하게 섭취할 수 있는 비타민이나 오메가3, 건강보조식품 또는 각종 약초 같은 것에 자연스럽게 눈길이 돌렸다. 이런 것들은 과거에도 많은 인기를 누려왔던 것들인데, 최근엔 코로나 때문인지, 면역력이나 호흡기 관련 제품들이 좀 더 집중을 받는 거 같다.


그러나 아무리 몸에 좋다고 알려진 건강보조식품이나 약초, 비타민도 그냥 마구 섭취해서는 절대 절대 안 된다. 모든 생물에 필수인 물도 많이 먹으면, 배탈도 나고, 신장에도 무리를 주어 건강을 해칠 수 있다. 그런 만큼 아무리 인터넷이나 유튜브에서 몸에 좋다고 소문나고, 칭찬하는 제품이라도 흥분을 가라앉히고 장점, 단점, 부작용 등을 자세히 살펴보고 선택해야 한다.


하지만 바른 정보를 얻기는 쉽질 않다. 대부분이 제품에 대한 광고성 내용만 가득하다. 그저 먹으면 좋다는 얘기만 수두룩하고, 자세한 학술적인 근거가 없거나 부족한 것들이 대부분이다. 바른 정보를 올렸다고 해도, 너무 단편적인 사실 위주라 그걸 종합적으로 판단하기에는 많은 시간과 노력이 들어간다. 영양제 하나 먹으려고 이렇게까지 해야 하는 생각도 들기도 한다.


'내 몸 내가 고쳐 쓴다2'는 그러한 불편을 확 덜어주는 책이다. 가나다순으로 감마리놀렌산부터 시작하여, 감초, 강황, 각종 비타민이 나오고, 마지막 무렵에는 흉선 추출물, DGL, DHEA까지 총 58가지 자연치료제를 다루고 있다. 그리고 끝에 나오는 찾아보기에서는 관련된 각종 증상, 병명 등이 함께 나와 있어서, 자신의 건강 상태에 맞는 정보를 바로 찾을 수 있다. 그래서 그런지 약초보감 그런 느낌도 나고, 건강 의학 사전 느낌도 든다. 


사실 이 책은 개인적으로 빨리 출판되길 기다려왔던 책이다. 올해 1권을 서평 하기도 했었고, 이 책을 통해 많은 정보를 얻어, 여러 가지로 도움이 되었던 책이기 때문이다. 1권에서는 대표적 성인병을 포함 50가지 질병을 다루고 있다. 증상과 원인, 자연치료법에 대해 적혀 있다. 이때 도움 되는 자연치료제를 번호로 담고 있는데, 바로 2권에 나오는 자연치료제의 번호이다. 1권은 질병과 자연치료법의 내용을 담고 있고, '내 몸 내가 고쳐 쓴다2' 2권은 자연치료제에 대해 다루고 있는 데, 이 번호로 찾으면, 좀 더 편리하다.




우리가 자주 섭취하는 오메가3를 통해 책 구성이 어떻게 되어 있는지 보겠다. 우선, 37이라는 번호와 함께 메인 주제인 오메가-3 오일이 나오고, 바로 아래 간단히 요약된 설명이 나온다. 본문에서는 오메가3에 대한 전반적인 이야기와 함께 최신의 이슈도 다루고 있는 것을 알 수 있다. 참고할 1권 내용은 까만 줄로 표시되어 있다.




효과, 연구결과/사례, 복용 방법/주의 사항 순서로 설명하고 있고, 연관된 다른 자연치료제는 주황색 글씨로 적어 놨다. 바로 참고할 수 있게 관련 질병을 세로로 기다란 박스로 처리했고, 좋은 오메가3 오일 고르는 방법과 같이 그 밖에 중요하거나 참고할 내용은 별도로 박스 처리해 구성했다.


그동안 몸에 좋다고 그저 무심코 먹어왔던 오메가3에도 다양한 알거리가 있었다. 오메가3에 부작용이 있다는 소린 비린내 같은 거 외엔 몰랐는데, 의외로 여러 부작용이 있음을 알 수 있었다. 혈우병으로 처방약을 먹고 있으면, 주의해야 했고, 수술 전에는 복용을 중단해야 한다고 한다. 


부작용 얘기하니까 개인적으로 그냥 넘어갈 수 없는 약초가 하나 있는데, 2번인 감초다. 다들 약방에 감초라는 소리 들어 봤을 것이다. 감초를 빨고 있으면, 은근한 달달함이 녹아 나오는 약초다. 이런 단맛 성분과 여러 약효로 인해, 한약에 자주 들어가기도 하는데, 이게 막 쓰면 안 되는 약초인 것이다. 실제로 아버지가 어디서 감초를 잔뜩 얻었다고, 아무런 지식 없이 영지버섯과 함께 잔뜩 넣어 다려 먹다가 온몸이 붓고 빨갛게 되는 곤욕을 치른 적이 있었다. '내 몸 내가 고쳐 쓴다2'에도 잘 나와 있는데, 감초는 의사 지시 없이 오래 복용하면 안 된다고 한다. 만성 간염 환자, 간경화, 당뇨, 부정맥, 고혈압, 저칼륨증 환자 역시도 복용하면 안 된다고 한다. 감초는 그만큼 많은 부작용이 있는 약초인 것이다. 그 밖에도 많은 주의사항이 나와 있으므로 감초가 아무리 항생, 항염 작용이 뛰어나다고 해도, 사용에는 신중을 기해야 하며, 특별한 질환을 가진 사람이라면, 의사와 꼭 상담을 하고 사용해야 한다.




'내 몸 내가 고쳐 쓴다2'보다가 최근 알게 된 아세틸시스테인 NAC에 대한 정보도 알 수 있었다. 두통이 잦아서 타이레놀을 가끔씩 먹고 있는데, 아세타미노펜을 많이 먹게 되면, 간에 안 좋다고 해서, 간 해독에 도움이 된다고 해서, NAC를 먹게 되었다. 사실 먹으면서도 사실 좀 찝찝함이 있었다. 잘못된 정보로 몸을 망치게 하는 게 아닌가 하는 그런 것 말이다. 책에 이 부분이 자세히 나와 있었다. NAC가 간에 도움을 주지만, 간 질환이 있는 경우 과용하면 안 된다고 한다. 신석이 생길 수 있으므로 주의해야 하고, 임신부와 수유모는 복용하지 말라고 한다. 주의할 점을 이렇게 확실히 알 수 있어서 찝찝함을 더는데 도움이 되었다. 다만 큰 부작용이 없는데도, 최근 아마존 등에서 NAC가 일반 영양제에서 퇴출되고, 해외 직구 시 국내 통관 금지 품목으로 되어 있는 점은 왜 그런지 아직 반영되어 있지 않아 관련된 정보가 나중에 추가되었으면 한다. 아울러 이왕이면, 전체적으로 책에 관련된 논문 출처도 지면을 차지하더라도 참고를 위해 부록으로 담았으면 좋았을 것이다.


'내 몸 내가 고쳐 쓴다2'는 기다린 보람이 있는 책이었다. 건강에 도움 되는 각종 자연치료제 정보를 보기 좋게 잘 정리하여 담고 있어, 지금 무심코 먹고 있는 영양제 하나하나를 제대로 살펴 볼 수 있어 많은 도움이 되었다. 게다가 전에는 전혀 몰랐던 것들도 새롭게 알게 되었는데, 55번 황체호르몬크림은 갱년기로 고생하는 사람들이라면, 남녀 모두 관심 가지고 읽어 보면 도움이 될 내용이었다.


개인적으로 '내 몸 내가 고쳐 쓴다'는 1, 2권 같이 보는 것을 권한다. 각종 질병과 관련된 자연치료제 정보를 담고 있는 책이라 어느 것을 먼저 보든 순서는 상관없다. 사람마다 한두 가지 병은 다 달고 사는 만큼, 전문 치료와 함께 상담받아, 보조적으로 겸하면 좋을 거라 생각한다. 아무튼 '내 몸 내가 고쳐 쓴다2'는 나와 가족 건강을 지키는데 두고두고 요긴하게 쓰일 거 같다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
머신러닝을 활용한 웹 최적화 - A/B 테스트, 메타휴리스틱, 슬롯머신 알고리즘에서 베이즈 최적화까지
이쓰카 슈헤이 지음, 김연수 옮김 / 한빛미디어 / 2021년 6월
평점 :
장바구니담기



잘 팔리는 상품에는 분명 그만한 이유가 숨어 있다. 잘 팔리려면 상품 자체의 기능, 디자인, 퀄리티가 좋아야 하는 것은 당연한 이야기일 것이다. 그런데 똑같은 품질, 똑같은 기능의 제품인데도 누군 대박 나고, 누군 쪽박을 차는 모습을 보면, 꼭 상품만 좋다고 잘 팔리는 것은 아니라는 것을 알 수 있다. 여기에는 마케팅도 중요한 이유가 된다.


편의점에 있는 가득 줄지어 놓여 있는 물건을 보면, 그냥 마구 놓은 거 같지만, 놓이는 높이, 위치, 시간대 등을 다 고려한 복잡한 마케팅 행위의 산물이다. 누군가에게 하나라도 더 많이 선택되기 위해서, 시각적, 심리적, 경제적 연구와 오랜 판매 경험을 담은 결과인 것이다. 전에는 관심 없었던 물건을 인기품으로 올리기도 하고, 누군가의 머릿속에 오래 남게 하여 어떻게든 판매로 이끄는 것이 마케팅인 것이다.


아니, 웹 최적화, 머신러닝, 프로그램 관련 책 이야기를 하는데 왜 뜸금없이 마케팅 얘기를 하나 할 것이다. 만일 이렇게 생각한다면, '머신러닝을 활용한 웹 최적화'라는 책이 뭘 하기 위해 최적화를 하는지 전혀 모르고 하는 소리다. 이 책에서 말하는 웹 최적화는 화면에 더 빨리 그려주고, 서버나 DB에 전송하는 것을 빠르게 최적화하는 것을 말하는 것이 아니다. 웹에 어떤 사진, 어떤 버튼, 어떤 문구, 어떤 색상을 해야 사람들이 더 관심을 가지고, 모여드는가를 얘기하고 있는 책이기 때문이다. 즉 앞에서 말한 마케팅 얘기처럼 뭔가 잘 팔리고, 잘 나가는 웹 사이트, 목적을 효과적으로 잘 살린 웹을 구축하는 방법을 말하고 있는 책인 것이다.


누군가는 '버튼, 문구, 컬러? 이것은 웹디자이너가 하는 것이 아닌가?' 말할 수도 있다. 웹 디자인에 관심이 있는 분이라면, 어떻게 디자인하는 것이 좋은 디자인인지 잘 나와 있는 유명한 책도 보았을 것이다. 그러나 '머신러닝을 활용한 웹 최적화'는 '이렇게 해야 보기 좋고, 보색으로 배치하고, 폰트 크기는 얼마, 구성은 어떻게' 하는 디자인 측면에서 웹 최적화를 말하는 책이 아니다. 여기서는 인공지능, 머신러닝에 활용되는 각종 알고리즘, 베이즈와 기존 통계적인 기법을 사용하여, 수치적으로 값을 구해 어떤 디자인이 사람을 끌게 만드는 디자인인지 객관적으로 알아내는 방법을 알려준다.




웹 디자인이나 프로그램 화면 디자인을 해본 분이라면, UI의 중요성과 함께 디자인만 예쁘거나 멋지게 만들었다고, 그게 좋은 프로그램이 되는 것이 절대 아닌  걸 잘 알고 있을 것이다. 문제는 이 디자인이 잘됐는지 잘못됐는지 알 방법이 없다는 게 큰 문제다. 내가 보기에 잘 됐다고 해서, 사용자들이 다 좋아한다는 보장을 어떻게 할 수 있을까? 게다가 결정된 디자인으로 인해, 내가 손해를 보고 있는지, 이익을 보고 있는지 알 길이 없다. 디자인 조금만 바꿔도 12.5% 이상의 클릭이 증가할 수도 있는데도 말이다. 이 책에 나와 있는 내용을 보면, 2013년 Bing의 검색 결과 화면에 약간의 텍스트 색 정도만 바꿨는데도 연간 1천만 달러 수익 증가를 실현했다고 한다. 웹의 최적화는 이익 최적화와 일맥상통하다는 것을 보여준다.


더 이상 개인의 감이나 어쭙잖은 심리학 적용 디자인과는 바아바이해야 한다. 과거에는 이런 것들이 어쩔 수 없이 행해졌지만, 인공지능 시대를 맞이해서, 이제 웹에도 이런 기술이 도입되어야 하는 것이다. 물론 구글, 아마존, MS 같은 IT 선도 기업들은 이미 행하고 있다. 서비스 개선을 위해 동의를 받는 것들 중 많은 것이 이런 최적화에 활용되고 있는 것이다.




디자인 면에서 웹최적화는 개인적으로도 전부터 무척 관심을 가졌던 분야다. 그런데 그것과 관련된 정보를 얻을 수 없었다. 고작해야 트렌드 서적 같은 곳에서 선거 때, 어떻게 이길 수 있었다는 정도였지, 구체적인 기술은 볼 수 없었다. 그런데, '머신러닝을 활용한 웹 최적화'에는 처음부터 그것을 다룬다. 미국 오바마 대선 당시, 지원자 등록 사이트에 A/B 테스트를 통해 어떤 사진과 버튼의 문구가 최적 조합인지 찾아서 지원자 등록률을 8.26%에서 11.6%까지 올렸다고 한다. 


여기서 중요한 것은 오바마 얘기가 아니다. 그것을 찾는 수학적인 과정이다. 이것을 알기 위해, 다양한 수학 지식이 필요하다. 이 책을 읽기 위해서는 적어도 고등학교 이과 수학 정도는 알 필요가 있다. 통계와 함께 벡터, 행렬, 미적분 등이 나오고 그것을 좀 더 발전 시킨 수학 내용들이 있기 때문이다. 책에 다루는 수학 수준이 어려운 편은 아니지만, 그렇다고 쉽지도 않다. 각종 공식 유도 과정이 자세히 나와 있으나, 특히 6장에서는 중간중간 여러 고비가 오곤 한다. 그래서 그런지 책에도 부록으로 행렬 연산 기초를 통해 파이썬 프로그래밍 방법도 알려주고, 베이즈 로지스틱 회귀, 톰슨 샘플링에 대해 설명을 추가하고 있다.




'머신러닝을 활용한 웹 최적화' 초반부는 A/B 테스트, 확률분포, 이산 같은 일반 통계와 베이즈 통계, 베이즈 추론으로 높은 클릭률을 찾아내고, 체류시간도 생각하며, 어떤 것이 최적의 것인지 판별하는 방법을 익힌다. 초반에는 2개 중 하나를 대상으로 하고, 3장부터는 다양한 요소들을 적용시 어떻게 모델링하고, 어떻게 평가하는지를 말한다. 




사실 통계적 방법은 예상을 하고 있었는데, 4장의 모델을 가정하지 않는 최적화 방법인 메타휴리스틱은 무척 생소한 방법이었다. 여기서는 통계가 아닌 언덕 오르기 알고리즘, 시뮬레이티드 어닐링, 유전 알고리즘을 사용한다. 들어 본 것도 있지만, 그걸 어떻게 활용하는지는 여기서 처음 알게 되었다. 


5장에서는 최적 모델을 찾는데, 너무 많은 시간과 경비가 들면 안 된다는 현실적인 문제를 알고리즘으로 해결해보는 과정을 다룬다. 기업에 있어 시간은 진짜 돈과 같다. 그래서 개발 현장 어딜 가나 기간 단축을 가장 마지막에 강조한다. 여기서는 다중 슬롯머신 문제를 통해 도출된 슬롯머신 알고리즘과 ε-greedy, UCB 알고리즘 같은 것을 적용해본다. 여기 나오는 슬롯머신 그림은 책 초반부터 여러 곳에서 각종 설명에 활용된다. 그때그때 다른 부분이 있기에 나중에 비교하며 이해하는데도 도움이 된다.


그리고 책에 있는 각종 코드들은 파이썬을 사용하고 있으며, PyMC3 라이브러리를 사용해서 계산에 활용하고 있다. 초보를 위한 책이 아닌 만큼, 파이썬 문법은 다루지 않고 있고, 바로  코드가 나오고 있고, 특별한 경우 외에는 코드 자체에 대한 설명도 하지 않고 있다. 그러나 코드 길이 자체가 짧고, 간단해서, 이해하는데 전혀 어려움은 없을 것이다.




7장에서는 색상, 컬러에 관한 최적화를 다룬다. 이런 것도 프로그램으로 최적화 가능하다는 게 신기했다. 확률 과정으로 가우스 과정을 사용하는데, 생소하지만, 수학 알고리즘을 이렇게 활용할 수 있다는 것이 흥미롭고 재미있었다. 여기서는 색상 최적화에 응용했지만, 비슷한 연속된 값을 가진 모델에 활용해볼 수 있을 거 같다.




이처럼 '머신러닝을 활용한 웹 최적화'은 최적화된 웹을 위해, 인공지능 알고리즘과 통계를 활용한 다양한 기법과 테스트를 위한 최단 시간과 효율적인 방법, 자동화된 방법을 제시하고 있다. 사실 이런 주제의 책은 상당히 보기 드물기에 인공지능, 웹최적화에 관심 있는 사람뿐만 아니라, 분야는 다를지라도 인터넷 마케팅 관련자라면 이런 정량적 방법도 있다는 것을 알기 위해, 한번은 봐 두는 것이 좋을 것이다.


그리고 이 책의 영문 제목에도 나와 있듯이 introduction 소개 정도의 내용을 담고 있다. 웹 최적화에 대한 전반적인 소개인 것이다. 그러나 보면 알겠지만, 단순 소개 정도의 책은 아니다. 방대한 수학 지식을 담고 있어, 사람에 따라서는 난이도가 있는 책이다. 완벽한 이해를 위해, 저자가 제시한 참고문헌도 볼 수만 있다면, 봐야 할 거 같다.


분명 여러 가지로 공부하기 힘든 면이 있겠지만, 인공지능 시대에 걸맞은 기술력을 쌓고, 남보다 앞선 실력을 가진 프로그래머로 성장하고 싶다면, 이런 고급 주제에 대한 공부도 필수라 생각한다.  이 바닥에서 프로그램 언어 아는 정도로 밥 벌어먹기는 이젠 힘들다고 본다. 인공지능이든, VR이든, 자신만의 독보적 프로그램 기술이 필요하다. 그런 면에서 '머신러닝을 활용한 웹 최적화'는 좋은 길을 제시할 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 생활밀착형 프로젝트 - 웹 크롤링, 카카오톡 메시지 보내기, 업무 자동화까지 11가지 파이썬 프로젝트 백견불여일타 이젠 프로젝트다!
김효실 지음 / 로드북 / 2021년 6월
평점 :
절판



코딩 교육의 열풍으로 교육 현장에서 다양한 방법으로 프로그래밍을 익히고 있다. 그런데 실제 프로그램을 자신 있게 짜는 사람은 많지가 않다. 코딩 교육의 목적 자체가 전문적인 프로그래머 양성보다는 프로그래밍에 대한 이해도를 높이고, 실생활에서 필요에 따라 코딩을 할 수 있는 사람, 즉 생활코더를 늘려 보자는 것인데, 현실은 그렇지 않은 거 같다. 프로그래밍과 적성이 안 맞는 사람도 많겠지만, 프로그래밍을 제대로 할 수 있는 중간 단계의 학습, 실전 트레이닝 같은 것이 부족한 것이 원인이라 나는 생각한다.


그런데 초보에게 프로그램 일거리를 줄리도 없고, 막상 뭔가 짜 보자니, 떠오르는 아이디어도 없는 것도 사실이다. 그런 애매한 상황에 단비처럼 시원한 도움이 될 수 있는 좋은 코딩 교재가 바로 '파이썬 생활밀착형 프로젝트'인 것이다. 


내 경험으로도 프로그래밍 실력을 업그레이드하고 좀 더 잘하는 방법은 다양한 코딩 경험을 갖는 것이다. 일단 자신 없어도 도전해보는 것이다. 처음에는 쏟아지는 엄청난 수의 버그에 무척 당황하게 되겠지만, 그것들을 하나하나 수정하며, 모르는 것이 있으면, 책과 인터넷을 뒤져가며, 좌충우돌하며 해결해 나가면, 자신도 모르는 사이 코딩 근육이 자라나 있는 것을 알 수 있다.




'파이썬 생활밀착형 프로젝트'은 그런 코딩 근육이 성장할 수 있게, 사진 또는 리뷰 크롤링, 카톡 메시지 보내기, 보고서 자동화, 이메일 전송 자동화, 인공지능 활용, 네이버 뉴스 요약, 일정 관리, 주식 분석 자동화 등의 실제 활용도가 높은 11가지 프로젝트를 담고 있다. 즉 지루하고, 뻔하며, 실제 쓸모없는 프로그램 언어를 배우기 위한 용도의 예제가 아니라는 것이다. 


11개 코딩 프로젝트들을 살펴보면, 번역서나 기존 책에서는 다루지 않은 내용들을 많이 담고 있는 것을 알 수 있다. 카카오 Open API, Google 툴, Teachable Machine, 구글 캘린더 Open API 같은 것들은 내 경우에서도 처음 접하는 것들로 흥미롭게 봤고, 덕분에 새로운 코딩 경험치도 높일 수 있었다. 




책에서는 카카오뿐만 아니라, 네이버 Open API도 나오며, 공공데이터 포털 Open API 같은 것도 등장한다. 보통 초보 입장에서 OpenAPI 하면, 괜히 어려울 거 같아 접근하기를 주저하는데, 이 책에서는 각종 OpenAPI 쓰는 법을 자세하면서도 쉽게 알려주고 있어서, 그런 부담을 덜어 줌과 동시에 다른 API를 쓰는데도 친숙하게 해준다. 별거 아닌 거 같지만, 프로그래머로서 이런 경험은 활용 능력을 높이는데 무척 중요하다. 


책 구성을 보면, '학습목표' 파트에서 어떤 프로그램을 짤 거며, 어떤 결과물을 만들 건지, 코딩 환경, 필요한 API나 라이브러리를 한눈에 볼 수 있게 정리해놨고, '사전 준비하기'에서 각종 툴 설치 방법과 같은 것을 알려준다. '사전 지식 쌓기'에서는 프로그램 작성에 필요한 API 사용법, 기술 이해, 간단한 활용 코딩 등을 해본다. 그리고 이런 것들을 토대로 '구현하기' 파트에서 스텝, 스텝을 밟으며, 목표하는 프로그램을 작성하며, '요약과 정리하기'를 통해 작성한 프로젝트를 최종적으로 다시 한번 정리해보고, 어떤 응용이 가능한지도 아이디어를 생각해본다. 이런 구성은 일반적인 프로그래밍 과정과도 일치하므로 11개 프로젝트로 전문 프로그래머로서 나아가기 위한 트레이닝을 충분히 할 수 있다.


책에는 카톡이니, 인공지능이니, 주식이니 하는 그냥 프로젝트 제목만 보면, 무척 어려울 거 같은 주제들을 다루고 있지만, 앞에서 소개한 책 구성을 하나씩 따라 하다 보면, 그리 어렵지 않다. 해보면 알겠지만, 오히려 쉽게 느껴지는 부분이 많다. 그렇다고, 수준이 낮은 것은 절대 아니다. 설명이 잘 되어 있어서 그렇고, 코드에 불필요한 군더더기를 다 덜어내고 엑기스만 담았기 때문이라 생각된다. 




게다가 파이썬 공부한 지 얼마 안 된 사람이나, 가물가물한 사람을 위해서, 특별부록에 파이썬 설치 없이 코딩해볼 수 있는 코랩을 소개하고 있고, 파이썬 기본 문법, 파이썬 설치, 패키지와 라이브러리 사용법 등을 정리해서 담았다. 


이런 내용과 구성은 김효실 저자의 경력과 무관하지 않다는 생각을 한다. 빅데이터 전공에 각종 기업과 학교에서 전문강사, 겸임교수로 활동한 교육 경력과 AI 관련 근무 경력이 책에 잘 스며든 것이다. 그 때문인지 책 보는 내내 학원에서 수업을 받는 느낌을 받았다. 프로그램을 배우는 사람에게 뭐가 필요한지 확실히 잘 알고 있는 분이라 생각한다. 


책 내용 중, 6장의 'Google Teachable Machine을 사용한 졸지마 프로젝트'는 인공지능 관련 파트로 OpenCV와 텐서플로, 티치블 머신 툴을 사용하는데, 조는 모습을 인공지능을 활용해서 잡아내는 프로그램이다. 최신의 정보도 잘 담아 있고, 재미있는 활용이란 생각을 한다. 




10장에 나오는 '주식 분석 보고서 자동화 프로젝트's를 보면서는 오래전에 기억이 새록새록 떠오른다. 주제도 모르고, 나만을 위한 실시간 주식투자 프로그램을 한번 짜볼까 했던 적이 있었다. 당연히 실패였다. 당시에는 오픈소스 개념도 없었고, 통신도 안정적이지 않았고, 무엇보다 내가 가진 주식에 대한 지식도 미천해서, 그냥 까불다 알아서 포기했다. 책에서는 아주 간단히 생각보다 많은 것을 구현하고 있다. 이어지는 11장 인공지능 비서 자비스 프로젝트와 잘만 조합하면, 의외로 막강한 프로그램도 나올 수 있을 거 같다는 생각을 해본다.


이처럼 '파이썬 생활밀착형 프로젝트'는 신선하고, 재미있는 최신 주제를 잘 담고, 잘 설명하고 있어, 코딩 근육을 제대로 붙여주는 트레이너 역할을 하고 있다. 진도도 빠르게 나갈 수 있어, 독학뿐만 아니라, 그룹 스터디 교재나 학원 교재로도 좋을 거다. 


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
세상에서 제일 친절한 엑셀 - 지금 당장 시작하는 엑셀 업무 활용, 읽기만 해도 단숨에 실력이 쌓인다!, 개정판 세상에서 제일 친절한 엑셀
박재영 지음 / 한빛미디어 / 2021년 6월
평점 :
장바구니담기




잘하고 못하고를 떠나 다들 엑셀 한 번쯤은 접해봤을 것이다. 간단한 보고서 작성,  시장 분석, 매출 보고, 사업계획서, 등 업무 관련 각종 서류 작성에 아주 유용하다. 많은 데이터 통계처리에도 편리하고 그것을 각종 그래프로 표현할 때도 무척 편리하다 


일반 업무뿐만 아니라 더욱 다양한 프로그램 데이터 처리에도 쓰이고 있고 공장의 자동화 장비 측정 결과 또는 생산 데이터 저장에도 엑셀 파일이 쓰인다. 


그만큼 엑셀을 제대로 배워 두면 여기저기 쓸 곳이 참 많다 그래서 많은 사람이 엑셀을 배우고 자격증도 준비하는데 워드나 파워포인트와 형태도 다르고 수식이나 그래프 같은 것들 많이 나와서 그런지 많이들 어려워하는 거 같다.


내 경우엔 프로그램 짤 때 복잡한 계산식이 들어가 있는 경우, 미리 계산해보고 구체적인 알고리즘을 만들 때 쓰기도 하고, 결과 교차 검증 같은 것이 필요할 때도 자주 활용하고 있다. 그러면 무척 엑셀을 잘 할 거 같지만, 제대로 공부하지 않고, 그때그때 필요한 것만, help 또는 인터넷 검색으로 땜방하듯이 익혔다. 그러다 보니, 뭐 하나 작성하려면 여러 시행착오로 인해, 많은 시간이 걸리고 있다.


그래서 최근 시간적 여유도 있고, 엑셀을 좀 제대로 배울 필요도 있어, 엑셀 공부에 도움 될만한 책 찾다가 '세상에서 제일 친절한'이라는 말에 끌려, 뭔가 설명도 자세할 거 같고, 내용도 쉬울 거 같아서, '세상에서 제일 친절한 엑셀'을 보게 된 것이다. 실제 읽어 보면 알겠지만, 책 제목처럼 진짜 설명이 친절한 책이다. 엑셀 사용에 꼭 필요한 내용을 하나씩 조곤조곤 설명하고 있다. 참고로 이 책의 내용은 2010, 2013, 2016, 2019, 355버전 모두 적용된다.




이 책의 첫 챕터만 보고도 내 엑셀 실력이 확실히 엉망이라는 것을 알 수 있었다. 완전 기초도 안되어 있었다. 엑셀 문서 작성 시, 시간 절약에 큰 도움이 되는 단축키를 이제서야 명확히 알게 되었다. 연속된 수나 요일 같은 거를 그동안 어쩌다 되면 그 기능  쓰고 안 되면 무식하게 일일이 입력했었다. 컴퓨터 프로그램을 쓰는 이유가 시간 단축, 업무 효율인데 이 실력으로 지금까지 버틴 게 용하다는 생각마저 든다. 이 책 챕터 1만 제대로 익혀도 얻을 게 많고, 엑셀 사용이 무척 편리해질 것이다.




책 구성을 살펴보면, '시작하기' 코너를 통해 현재 챕터에서 뭘 배울지 개념을 잡고 '원리이해' 파트에서 필요한 기능을 살펴본다. 그리고 이걸 기반으로 여러 개로 나눠진 '본격실습'에서 실제 화면과 설명을 위한 말풍선을 통해 한 단계 한 단계 구체적인 엑셀 기능을 배워 나간다. 이때 관련 예제 샘플은 한빛에서 다운로드하면 된다. 보충 설명 또는 비슷한 기능 설명은 '친절한 Point Note에서 다룬다. 




배운 내용은 '학습점검'에서 간결한 문제 형식의 예제로 확인하고 잘 모를 때 바로 확인하기 좋게 관련 페이지가 적혀 있다. 각 챕터 마지막 구성인 '실무해법'에서는 Q & A 형식으로 배운 걸 좀 더 응용할 수 있게 원포인트 조언을 하고 있다 


내용이 엑셀에 꼭 필요한 개념과 원리를 먼저 이해하게 되어 있어 오랫동안 기억에 남는 편이다. 기본 원리 위에 한층 한층 쌓아 올리는 학습 구조라, 학습 부담도 없다. 학습 진도도 술술 나간다. 


내가 워낙 엑셀 기본기가 없어서 그런지 모르겠으나, 많은 것을 새롭게 알게 되었다. 각종 단축키는 기본이고, 어렵게 작성했던 차트에 대해 더 완벽히 알 수 있었고 편집도 다양하게 할 수 있게 되었다. 엑셀 작성시간, 업무시간 단축도 당연한 결과다. 챕터 하나씩 정복해갈수록 점점 성능 좋은 엔진을 다는 느낌이다. 그만큼 엑셀 실력 업그레이드에 도움이 되는 책이라는 거다.


실무에 엑셀을 자주 다루는 분은 책상 가까운데 놓고 그때그때 참고하면 좋을 것이다. 엑셀 관련 자격증을 따려고 하는데 이해가 잘 안 되는 수험생은 이 책을 보고 나면 이해가 수월해질 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo