데이터지능 E9 딥러닝 프레임워크 및 활용편

Jin Young Kim talks with Kim Seong-Jin and Kim Jin-Jung about deep learning frameworks. They discuss data augmentation for handling new variations, why convolutional networks struggle with tasks needing global context, and why data preparation matters more than the model itself. For beginners: start with TensorFlow, then try PyTorch.
Chapters
네 데이터진행 팟캐스트 오늘은 이제 아홉번째 시간으로 딥러닝 프레임워크 및 활용편을 시작하겠습니다 아 잠깐만요 이런 초보적인 실수를 어쨌든 이 부분은 이제 네 어쨌든 오늘 딥러닝이 사실 굉장히 널리 사용이 되고 있고 제가 듣기로는 작년까지만 해도 이제 딥러닝이 조금 더 연구를 위한 도구로써 좀 더 많이 사용이 됐는데 올해부터는 본격적으로 현실세계 문제를 푸는 도구로써 활용이 많이 될 것이다 이런 전망이 많이 나오고 있는 것 같습니다 그래서 딥러닝의 활용을 위해서는 사실은 대부분은 바로 구현을 하기보다는 여러가지 프레임워크를 사용하게 되는데요 딥러닝 프레임워크의 종류가 여러가지가 있어요 프레임워크 종류가 텐서플로우 PyTorch, Keras 이런식으로 굉장히 여러가지가 있는데 여러가지 프레임워크를 이제 뭔가 잘 이해하는 것도 쉽지가 않고 그걸 활용해서 실제 문제를 풀어보는 그런 경험도 사실은 많은 분들이 아직 해보신 못하셨을텐데 오늘은 테리님 그리고 이제 딥러닝 프레임워크 관련된 책을 집필하신 두 분을 모시고 딥러닝 프레임워크 활용에 관련된 이야기를 해보려고 합니다 네 그래서 우선 테리님 안녕하세요
네 안녕하세요 딴짓하고 있었는데 마이크 끄고 네 안녕하세요 반갑습니다
네 테리님 오늘 지난주에 CES를 다녀오셨다고 하니 CES 얘기도 잠깐 들어보고요
아 좋죠
네 그리고 이제 3분 딥러닝 캐라스맛 최근에 나온 따끈따끈한 책인데요 네 저자이신 김성진님 모셨습니다 네 안녕하세요
예 안녕하십니까 김성진입니다 이렇게 팟캐스트를 통해서 찾아뵈니까 또 기분이 색다른데 반갑습니다
네 뭐 여러가지로 뭐 책도 내시고 최근에 이제 미국에 계시다가 또 한국으로 옮기셨다고 하는데 어 네 얘기도 좀 자세히 들어보고요 네 그리고 또 마지막으로 이제 3분 딥러닝 텐서플로마 이 책도 굉장히 많이 어 팔리고 이제 굉장히 여러분들이 좋은 좋아하시는 책으로 알고 있는데 저자의 신 골빈헤커라는 재미있는 닉네임을 쓰시는 김진중님 오셨습니다 안녕하세요
안녕하세요 반갑습니다 김진중입니다 발음하기 어려워서 제 이름이
발음하기 어려워서 진중님은 이름은 진중이신데 닉네임이 골빈헤커니까 완전히 다른 컨셉인 것 같아요
조금 분위기가 다르긴 하죠
네.
지금 목소리는 거의 진영님이 김진중님 같은 느낌이에요.
네. 목소리는 뭐 타고난 걸 어떻게 안 되니?
저는 이 컨셉을 알죠.
네. 아무튼 다들 이제 딥러닝에 관심이 많은 저 그리고 딥러닝 관련된 연구도 하시고 실제로 일도 하시는 세 분 모여가지고 오늘 딥러닝을 어떻게 실전에 써볼까 다들 실전에 써보셨다는 얘기는 아니고 실전에 써보신 분도 계시고 실전에 써보려고 준비하시는 분도 계신데 어쨌든 그런 얘기를 오늘 해보려고 합니다 우선은 뭐 각자 간단히 소개 및 근황 얘기를 좀 해주시면 좋을 것 같은데 저부터 간단히 테이프를 끊자면 저는 새해가 돼서 아이가 다시 한국에 잠깐 있다가 미국으로 왔는데 오자마자 아파가지고 전 가족이 병치를 하느라고 목 상태가 별로 안 좋고요 어쨌든 그거 빼고는 힘찬 한 해의 시작을 보내고 있습니다 테리님은 최근에 CES 다녀오셨더라고요
네, CES 다녀왔는데요 누가 지원해주고 이러지 않아서 페이스북에서 호텔 좀 구걸해요 티켓 좀 구걸해요 여러가지 구걸해가지고 제가 다녀왔습니다
그렇게 다녀오신 값어치가 있었나요?
제가 보통 하루에 6천 걸음을 목표로 걷는데 가서는 뭐 2만 4천 걸음씩 걸었거든요. 엄청 넓고 사람도 엄청 많아서 질리더라고요. 그래서 가시기 전에 진짜 거의 막 진짜 히말라야 등반하는 그런 마음으로 진짜 운동 좀 하시고 가셔야 된다는 거 좀 알려드리고 싶습니다.
운동하러 가신 건 아니잖아요.
그쵸 근데 원래는 여러가지 보러다니려고 했는데 막상 너무 힘드니까 어차피 톡같은 것들 스피치같은 것들은 좀 있으면 유튜브에 요약이 올라올거고 또 직접 가서 보는 것들도 역시 누가 간추려주겠지라는 마음에 점점 더 힘드니까 안 보게 되더라구요 아무튼 여러가지 흥미로운 것들은 좀 봤구요 한편으로는 또 내가 너무 온라인에서 자주 접하다 보니까 이제는 세상에 흥미로운 게 별로 없구나 이런
것도 좀 느꼈구요 역시 인공지능이 화대였다고 하던데 오늘도 주제가 딥러닝이니까 딥러닝에 관해서 느낀 점이 있어요?
일단 가장 특이한 점은 CS에 작년부터 자동차 업체들이 나왔다는 걸 알고 있는데요 자동차 업체 중에서 가장 큰 부스 중에 하나가 엔비디아 부스였습니다 엔비디아가 자동차 보스들 사이에 떡하니 있으면서 우리 없으면 자율주행 안되라는 식으로 여러가지 자율주행 모듈을 위한 칩셋 같은 것도 공개를 했고요 그 다음에 자율주행 시스템 이런 것들을 공개를 함으로써 이제는 정말 자동차의 주도권이 엔진 이런 쪽으로 있는 게 아니라 정말 자율주행 쪽으로 넘어갔구나 이런 걸 확실히 느낄 수가 있었고요 이제 그거 말고는 이제 TV 쪽에서 슈퍼레졸루션 하는 것들이 좀 많이 보였거든요 그래서 예를 들면 유튜브 같은 거 저해상도로 이렇게 있는 걸 갖다가 이제 고해상도 TV에 쏘면 별로 잘 안 나오잖아요 근데 이제 그런 것들을 이제 슈퍼레졸루션으로 이렇게 프로세스 다 해가지고 보여준다
뭐 이런 기능도 있었고 지금 그거 딥러닝으로 했다는 말씀이시죠?
네 딥러닝으로 했을 거예요 아마 뭐 슈퍼레졸루션 요즘에 다 딥러닝으로 하니까요 그런 것도 있었고 또 어떤 게 특이했냐면 딥러닝은 아니지만 소니 같은 경우에는 뮤직을 디스커버리 해준다 이래가지고 사람마다 뮤직 취향들이 있잖아요. 취향들이 있는데 그걸 3D 스페이스 상에서 비주얼라이저션을 쫙 한 거예요. 예를 들어서 잘못된 만남이랑 다른 노래랑 비슷하다 이런 디스턴스를 가지고 유니버스를 하나 만든 거죠. 가까운 곳, 먼 곳 이렇게. 그래서 그 유니버스를 따라가면 장르도 바뀌고 하는데 그때 사용된 알고리즘이 누가 봐도 TSNE 네, 그거를 사용해서 비주얼라이저션을 했더라구요 그래서 그것도 재밌었고 그 말고 이제 작은 업체들에서는 이런 스타트업들에서는 뭐 YOLO 이런거 해가지고 뭐 디텍션하는거 가지고 나오는 업체들 많았고 뭐 GAN 같은거 가지고선 이제 우리 기술력 과시하는 업체도 많았고 그랬는데 딥러닝 하는 사람이 보면 딱 알죠 아 이거는 뭐 코드 돌린거다 뭐 이런거 다 아니까 그렇게 뭐 놀랍진 않았어요
네 아무튼 뭐 동해번쩍 쌀번쩍 하시는데 다음에도 또 좋은 데 다녀오시면 말씀해 주시고 지원해
주시면 제가 갈 테니까 돈만 지어주세요
네 그거는 잘 모르겠지만 어쨌든 오늘 그러면 두 분 게스트 모셨는데 김성진 님부터 소개를 조금 간단히 딥러닝과 관련된 내용을 중심으로 해주시면 좋을 것 같습니다
저는 삼성에 쭉 다니다가 그 다음에 하버드로 가면서 인공지능 특히 머신러닝이나 이런걸 많이 하게 되었거든요 갔다 보니까 좀 달랐던게 여긴 주로 IT한 사람들이 중심이 돼서 머신러닝도 하고 딥러닝도 하고 하는데 제가 조인한 곳은 사실은 하바드 양자화학 쪽이거든요 물론 제가 컴퓨터 사이언스하고 양자화학 두 군데 같이 협력하는 쪽에 있었기 때문에 사이언스 쪽만은 아닌데 어쨌든 IT가 아니라도 활발히 인공지능을 활용하는 걸 보고 제가 좀 많이 느낀 바가 있어서 나중에 책도 쓰게 된거죠 제가 쓴 책도 3분 딥러닝 캐라스마트 사실은 그런걸 원하는 사람 IT 전공이 아니라고 하더라도 평상시 IT 관심이 많으면서 인공지능을 한번 자기 분야에 적용해봐야 되겠다 그런 생각을 가진 사람들한테 좀 읽을 수도 있고 좀 해볼 수도 있도록 실습 중심으로 그렇게 책을 쓴거거든요 저는 그런거 하고 또 이제 보스톤 하면은 뭐 메디칼 쪽이니까 그게 이제 하바드 메디칼 스쿨도 있고 MGH라고 하죠. 그게 있고 하니까 그런 쪽으로 인공지능을 적용하는 그런 연구도 하고 그러다 보니까 이제 그 뭐 여러가지 메뉴얼을 뒤지다 보니까 메뉴얼이라는 게 이제 보면은 한 곳에 정리되어 있지 않고 인터넷으로 막 뒤져야 되잖아 여기도 있고 저기도 있고 그래서 그걸 다 뒤져다니니까 너무 내 스스로도 시간도 많이 걸리고 복잡하고 해서 여러 군데에서 나와 있는 메뉴를 묶어 가지고 책으로 이제 하나 정리를 한 거죠 정리 한마디로 그렇게 해서 책이 나오게 됐습니다
네 사실은 인공지능, 머신러닝을 전공하신 건 아닌데 실제로 최근에 굉장히 딥러닝 쪽 관심을 많이 갖게 되셨고 그래서 머신러닝 관련해서 실제로 프로젝트 적용을 하셨던 걸로 제가 알고 있고 그 다음에 배우신 걸 정리해서 책으로 내셨고 책은 Keras라는 프레임워크를 다루는 내용인데 정말 비전공자 사실은 머신러닝 딥러닝이야 뭐 전공자를 따지면 문명없죠 정말 근데 이제 어쨌든 굉장히 많은 그런 일을 하시지 않았나 생각이 들고요 그 얘기는 좀 더 자세히 조금 이따가 들어보기로 하고요 이번에는 김진중님 간단히 소개 부탁드릴게요
말하면 되나요? 짱구야 아니야 너 부르는 거 아니야 옆에 제 클로바 스피커가 있는데 지가 마음대로 대답을 너 아니야 너 아니다 아무튼 저는 일을 만들고 있는 네이버의 클로바의 인공지능 연구소에 최근에 일을 하고 있고요 한 달, 한 달 반 정도 됐습니다 들어가서 한 달 반 정도 됐고 저는 원래 이쪽하고 아무런 관계가 없는 사람이에요 머신러닝, 딥러닝 이런 거 전혀 모르고 사실 뭐 컴퓨터 전공한 사람도 아니고 근데 이제 저는 이제 알파고 대부분의 사람들이 그렇듯이 알파고 보고서 이거 진짜 공부해야겠다 싶어 가지고 공부하다 보니까 어쩌다 보니까 그 당시에 이제 뭐 이거를 책을 아주 좋은 책, 지금은 되게 좋은 책이 많이 나왔는데 그때는 많지도 않고 그래서 우연찮게 이제 쓰게 됐고요 요즘은 덕분에 이제 진짜로 그 일을 할 수 있게 됐죠 그래서 요즘 되게 즐겁게 일하고 있습니다
네, 뭐 골비네커라고 닉네임을 씌웠으니까 스스로를 이제 개발자 뭐 이렇게 생각하시는 건가요?
그쵸 저는 뭐 되게 어렸을 때부터 개발을 시작하긴 했고 그냥 취미로도 하고 일로도 하고 작업일치로 열심히 살고 있습니다 어제는 그거 뭐야 블록체인으로 블록체인 구현해가지고 하나 만들어가지고 기토브에 공개하기도 했고 그런게 재밌어가지고 열심히 하고 있어요
네 근데 그래도 텐서플로우를 처음에 가지고 이제 튜토리얼을 기타업에 올리신게 책이 된 계기가 됐다고 들은 것 같은데 네네 그 튜토리얼도 많이 많은 분들이 보셨던 것 같더라구요
그쵸 제가 뭐 생각보다 많이 좋아해 주셔가지고 좀 놀라긴 했죠 관심들이 많으셨고 또 이렇게 돼 있는게 그때 없다고 생각해 가지고 만든 거긴 한데 진짜 없나 보다라고 생각을 하긴 했죠 그래서 도움이 된 것 같아서 되게 좋게 생각하고 있어요
네 어쨌든 뭐 두 분 다 이제 가장 널리 쓰이는 딥러닝 튜토리얼이라고 할 수 있는 텐서플로우 그리고 이제 케라스 케라스는 이제 텐서플로우에 위에 올라가는 그런 튜토리얼, 아니 튜토리얼이 아니라 프레임워크로 알고 있는데 네 그래서 우선은 딥러닝 프레임워크 얘기를 조금 해보면 좋을 것 같아요 여기서 이제 테리님도 사실은 딥러닝 관련해서 이제 여러가지 이제 튜토리얼도 하시고 비디오도 만드시고 하셨는데 딥러닝 프레임워크에 대한 비디오가 또 있더라구요
네네 있지요 있습니다
네, 테리님은 어떻게 어떤 프레임워크를 어떻게 써보셨어요?
딥러닝은요 뭐 어차피 어떤게 목적이냐에 따라서 쓰시면 되는데요 뭐 제가 일단은 작년? 재작년? 작년? 재작년? 그 파이톨치가 나오기 전에 이제 그... 아 이름도 기억이 안나네 그분 누구죠? 그거 그 페이페이 제작? 유명한 블로거?
카파티?
네 카파티 맞아요 카파티가 베이애리아 썸머스쿨에서 얘기하기를 이렇게 얘기를 하더라구요 세상의 많은 연구중에 90%는 아마 캐라스만 쓰면 될거다 이런 얘기를 하는거에요 제가 그 얘기를 딱 듣고 딱 머리에 뭘 맞았어요. 그 전까지는 제가 테스트플로우를 하려고 낑낑대고 있었는데 아 이거 뭐 그렇지 내가 뭐 굉장히 복잡한 거 하고 있는 것도 아니고 일단은 먼저 기본적인 것부터 테스트를 해보자는 건데 이런 생각이 들어서 대부분의 문제는 Keras로도 가능하구나 라고 생각해서 Keras면 기본적으로 머신러닝을 툴로써 사용하는 거는 Keras면 괜찮게 할 수 있는 것 같고요. 그리고 재미로 따지자면 파이토치가 재미있는 것 같아요 파이토치는 넌파이랑 가까워서 디파인하고 실행해보고 조작해보고 실행해보고 이런것들이 인터랙티브하게 자유로워서 그런게 좋은 것 같고요 그리고 텐서플로우는 또 워낙 많은 사용자가 있고 그 다음에 논문이 있으면 거의 대부분의 텐서플로우로 된 모델들이 나오고 사람들이 짜줘가지고 그 다음에 또 현업에서 쓰실 분들은 디플로이 할 때도 굉장히 좋으니까 그런 면에서 특히 코딩을 접목하시는 분들은 텐서플로우를 하시는 게 좋지 않을까 제가 생각하기에는 이렇게 세 가지를 생각을 하고 있고요 그 외에도 많죠 MXNET도 있고 뭐 많잖아요 뭐 CNTK도 있고 그런거는 뭐 본인이 끌리시는거 하시면 되는거 같습니다 다 거기서 거기에요
사실 해보면 네 아 해보면 거기서 거기다로 이제 명쾌하게 정리를 해주셨는데 네 근데 그
Keras는 금방 그 이야기하면 물론 Fightwatch는 약간 그런 기능이 있긴 한데 그 다른 툴들하고 조금 차이 나는게 다른 툴들은 이제 그 처음부터 다 있잖아요 모든 기능이 근데 keras는 자기가 기능을 갖고 있는게 아니고 걔들 위에 올라가서 프레임워크 역할을 하는거니까 어쩌면 뭐 이렇게 애플투애플이라고 볼 수도 있지만 요건 약간은 조금 개념이 틀리니까 텐스플로우를 예를 들면 엔진으로 쓰면서 위에 keras가 올라가니까 그런 부분은 조금 다른 툴들하고는 좀 다른 것 같아요 제가 보기엔
네 그게 그러니까 장점이 될 수 있죠 그쵸? 그 제가 알기로도 이제 백엔드를 뭔가 그 텐서플로우를 썼다가 이게 다른게 이제 mxnet에서도 돌아가고 그 다음에 어 다른데 또 지원되는게 그 피아노였나요? 뭐 다른 것도?
CNTK도 되고 뭐 텐스플로우 당연히 되고 다 되고 최근에 인텔하고 그기도 이제 칩을 만들 AMG하고 칩을 만드는데 거기도 이제 프레임머크로는 Keras를 지원하는 거로 지금 하고 있거든요
그렇게 사실은 여러가지 이제 실제 딥러닝 프레임워크를 바꿔가면서 실험을 해볼 수 있다는 건 장점인 것 같은데 반대로 말하면 이제 각 프레임워크 자체의 장점을 최대한 살리기는 조금 어려운 그런 문제도 있을 것 같아요 그 텐서플로우 고유의 기능이 있다면 이제 그거를 테라스에서 지원을 해버리면 이제 다른 프레임워크랑 호환성이 떨어지니까 그런 부분은 어떤가요?
이게 이제 베이직클리는 시아노 위에 올라가 있었잖아요 텐스플로우보다 나이는 더 많거든요 사실은 시아노 위에다가 올려서 쓰다가 다음에 텐스플로우가 나와서 텐스플로우를 가지고 했는데 이제 그 자기가 백엔드 언어를 갖고 있어요 그래서 텐스플로우가 아니고 자기의 백엔드가 있는데 그걸 하면은 내부적으로 텐스플로우를 번역이 되거든요 그래서 그것만 충실히 K라고 부르는데 K라는 그 엔진을 가상의 버추얼 엔진 그 엔진을 갖고 코드들을 만들면 앞으로 어떤게 나오더라도 텐스플로우든 CMTK든 어떤게 나오더라도 내부적으로는 자동으로 되는거죠 그래서 호환성은 그렇게 해결할 수 있는 그런 부분이 있습니다
그러니까 사용자가 코드를 작성을 하면 그걸 내부에 어떤 k라는 형식으로 변환을 해서 그걸 형식으로 갖고 있다가 그걸 이제 텐서플로우 코드로도 바꿔주고 말씀하신 mxnet 코드로도 바꿔주고 cntk로도 바꿔주고 그런 식으로 동작을 하는군요
그렇죠, k 함수로 작성해놓으면 k 함수가 텐서플로우하고 비슷하게 생기긴 했는데 조금 틀려요 근데 k.sum 이러면은 텐스플로의 k.reduced sum으로 자동으로 바뀌고 내부적으로 그게 되기 때문에 사용자는 어떤 엔진을 쓰는지를 많이 염려하지 않고도 쓸 수 있는 거죠
네 그러면은 그 프로젝트를 하실 때 실제로 그러면은 keras만 가지고 어떻게 다 그게 가능하셨나요? 아니면 케라스를 쓰다가 필요한 부분은 텐서플로우를 가지고 디버깅을 한다든가 그런 식으로 어떤 식으로 작업하는
방식이 되셨는지 제가 바이오 쪽의 이미지를 컨볼루셔널 딥러닝을 이용해서 클래시피케이션을 할 때 분류하고 갈 때는 거의 99%는 keras로만 작성해도 되더라구요 뭐 거의 100%라고 할 수 있는데 하는데 아주 최근 논문들에 나온 기술을 쓰고 싶다 아주 최근 뭐 유닛이라던지 그런 것들을 할 때는 그 k-engine 우리 engine이라고 하는데 k 함수를 약간씩 써야 될 경우가 있거든요 근데 그 k도 어차피 keras가 지원하는 함수이기 때문에 사실 keras 안에서 다 끝났다고 볼 수도 있는거죠
네 그런데 이제 생각해보면 이미지를 분류하는 그런 문제는 어찌 보면 딥러닝에서 가장 많이 처음부터 해온 문제 아닙니까? 그러니까 어찌 보면 Keras 같은 프레임워크를 좀 풀기가 좀 더 편리한 좀 더 일반적인 문제였다고도 보여지는데 다른 문제의 경우에는 사실 Keras가 그 지원을 안하는 약간 그런 부분도 있을 것 같다는 생각도 좀 드네요
그러니까 그 제가 이제 Keras를 좀 많이 하던 GAN이거든 GAN을 이걸 텐스플로우로 하려고 그러니까 두가지의 물론 텐스플로우를 많이 하신 분들은 뭐 쉽겠지 어렵지는 않을 건데요 제가 같은 경우는 GAN을 텐스플로우로 막 구현하려고 하다보니까 너무 고민할게 많더라구요 근데 이제 그걸 keras로 겐을 구현하다 보니까 그러니까 generative 모델 그걸 하다보니까 되게 쉬워요 아주 심플하게 겐을 구현할 수 있더라구요 그래서 keras가 강력한 거구나 그렇게 생각을 했고 그리고 아까도 말했듯이 k 함수라는 엔진 함수인데 그 백엔드 함수 그것을 사용하지 않다 그러면은 좀 풀 수 없는 문제들이 간혹 좀 있을 것 같은데 현재의 딥러닝 문제 중에서 Keras로 풀지 못하는 문제는 없지 않나 싶어요 제가 지금 만나본 건 없고 단 이제 그 아까 말씀하셨듯이 테리님 말씀하셨듯이 논문이 나오면 사람들이 공유하는 게 텐스플로우 코드 잖아요 제점에 그러다 보니까 이제 Keras까지 올라 그러면은 한두 달 더 시간을 걸리는 것 같더라구요 텐스플로우 코드가 공개되고 한 두 달 지나면 케라스 진행해서 코드를 공개하고 뭐 그런건 좀 아쉬운 점이 좀 있는 것 같아요
네 그러니까 뭐 gen 같은 경우에도 케라스로 구현을 했더니 훨씬 더 간편하게 되셨다 그런건데 어 근데 이제 제가 저는 이제 뭐 두 번 책 읽고 그 다음에 실제로 튜토리얼 같은 거 몇 개 돌려본 게 전부지만 디버깅 같은 게 조금 쉽지 않을 것 같아요 프레임워크라는 게 사실은 여러 가지 기본적인 연산을 추상화해주는 기능을 하잖아요 예를 들어서 제가 알기로는 텐서플로우는 각 뉴런 단위에서 작업을 해야 된다면 케라스는 레이어 신경망의 각 계층 단위로 작업을 하는, 각 계층의 여러 가지 유런이 있고, 유런 간의 연결 관계가 있고 약간 그런 건데 추상화 계층을 높여주는 건데 그런데 어찌 보면 실제로 뭔가 잘못되고 뭔가 성능이 안 나고 할 때는 결국에는 유런 단위로 뭔가 봐야 되는 일이 있는데 그런 거는 사실은 어쨌든 텐서플로우 단으로 내려가서 거기에서 문제를 해결해야 되지 않을까 예를 들어 뭐 디버깅 툴 같은 것도 이제 텐서플로우에서 지원하는 게 필요할 것 같다는 생각도 조금 들고 그런 부분 어떠셨어요? 그러니까 뭔가 실제로 뭐 문제를 딥러닝으로 문제를 해결한다는 게 그냥 한번 돌려서 아 이렇게 되는구나 뭐 보고 끝나는 게 아니잖아요 거기서 이제 계속 뭔가 디버깅도 하고 뭔가 퍼포먼스 튜닝도 하고 여러 가지 그런 작업이 있을 텐데 그런 것까지 keras로 되나요? 아니면 이제 그런 경우에는 이제 TensorFlow에서 제공하는 툴을 사용하든지 그렇게 되나요?
그 텐스보드라고 해가지고 그 이제 딥러닝이 학습되는 그 상황을 리얼타임으로 이렇게 보는 거 있잖아요 그거는 이제 텐스블루에서 제공하는 건데 이제 keras에서 어차피 연결이 되니까 텐스보드는 이제 쓰거든요 이제 그렇게 하고 그 다음 이제 아까 금방 말씀하신 그 레이어 자체를 더 들어가서 볼 때 그때 예를 들면은 이제 keras가 제공하는 레이어를 쓰면은 간단한데 어차피 그게 되니까 근데 그 레이어 자체를 만약에 새롭게 자기가 define을 해야 되겠다 제가 최근에 해본 건 예를 들면 이제 양자이론 같은 데는 복소수를 많이 다루거든요 보통 우리가 그 레이어 그러면 실수 책임을 하잖아요. float포인트 들어오면 추력도 float포인트인데 그 양자이론 계산하려고 하다 보면 이제 그게 컴플렉스로 해서 이제 페이지하고 매거닉도 같이 있으니까 그런 경우는 이제 그 레이어 자체를 자기가 한 번에 define 해야 되거든요 그런 경우는 이제 그 금방 말씀하셨듯이 이제 그 디버깅 같은게 이슈가 될 수도 있죠 그래서 이제 그거를 할 때는 이제 이게 그 keras가 ceano 베이스로 왔기 때문에 ceano의 기능은 다 쓸 수 있으면서 keras의 라이브러리에 있어서 더 쉽게 할 수 있는 거거든요 그래서 레이벨을 낮춰가지고 k 코드, k 코드가 ceano 형태인데 ceano 코드로 이렇게 작성하고 그래서 디버깅도 그 레벨에서 하면은 이제 가능하거든요 근데 이제 또 최근에 텐스플로우, 아니 케라스가 이제 구글에게 인수되면서 텐스플로우도 이제 Theano하고 똑같은 레벨에서 이렇게 쓸 수가 있거든요 그래서 케라스를 썼지만 레이어를 define 할 때는 텐스플로우를 define 해버리면 그때는 이제 텐서플로우의 여러가지 툴들 여러가지 함수들을 써서 세밀하게 수정도 하고 디벨롭도 할 수 있는거죠
진영님 네 그 뭐지? 이게 그렇잖아요 오늘 이제 그 방송이 입문하시는 분들을 위한 방송이잖아요 그래서 이제 입문하시는 분들은 아마도 고민을 하고 계실거라고요 아 케라스로 시작을 할까 텐서플로우로 시작을 할까 근데 또 그분이 이 방송을 듣고 나서 어떤 결정을 하시느냐에 따라 또 책 판매량이 케라스 책을 살까? 텐서플로우 책을 살까? 이게 결정이 된단 말이죠. 그러니까 이거를 손석희 씨처럼 이렇게 좀 시간을 분배를 좀 해주셔서 골비대표님에게 그렇다면 왜 케라스 책을 말고 텐서플로우 책을 써야 되느냐? 좀 한번 들어보도록 하죠.
지금 안 그래도 칼을 가고 계시지 않을까 생각이 드는데 농담이구요 사실 근데 성진이 말씀하신 대로 텐서플로우랑 캐라스트는 뭔가 하나를 선택한다기 보다는 뭐 하다보면 둘 다 쓸 수밖에 없고 둘 다 써야 되는 약간 그런 쓸 수도 있고 그런 그런 게 아닌가 생각이 드는데 어쨌든 진중님 말씀 한번 들어볼까요?
나온지 오래돼서, 꿈물이라서 상관이 없습니다. 사실 어떤 걸로 선택하느냐의 문제는 사람마다 다를 거라서 뭐가 좋다 뭐가 나쁘다를 정확하게 얘기하기는 어려울 것 같고요. 제가 캐러스는 그냥 튜토리얼 정도만 해본 정도 수준이고 실제로 좀 이제 실전적인 모델을 만들어 본 것은 파이터치랑 텐서플로 이 정도 기능 하거든요 근데 그냥 구현하는 거 입장에서는 제 입장에선 그냥 걔나 쟤나 뭐 익숙해짐의 차이지 별로 뭐 특별히 그렇게 다른 점이 있다고 생각되진 않아요 이제 다만 파이터치 같은 경우는 좀 더 편리한 기능들이 있어요 좀 편리한 기능들이 있고 이제 디버깅 같은 걸 하기에 조금 편리한 면이 있어서 연구자들은 요즘에 파이토치를 거의 다 쓰시는 것 같더라구요 대부분 다 파이토치만 텐서플로 별로 안 쓰시고 근데 그 프로덕션으로 가게 되면 사실 되게 디테일하게 수정해야 되는 부분도 많고 그 다음 이제 뭐 api 서버로 디플로이를 한다거나 아니면 모바일에 올린다거나 하면 그거를 지원해주는게 툴이 텐서플로우가 되게 많으니까 결국은 프로덕션으로 가는 분들은 지금으로서는 텐서플로우가 좀 나은 것 같고 연구하시는 분들 입장에서는 제가 봤을 때는 Keras는 잘 모르겠지만 PyTorch가 훨씬 좋은 것 같아요 이렇게 이제 사용하는 분야에 따라서 좀 다를 것 같고 Keras 같은 경우는 이제 좀 그냥 예를 들면 딥러닝을 정말 제대로 배워보고 싶은 마음이 있는 따기 보다는 그냥 이런게 있다니까 한번 개념이라도 한번 익혀볼까? 정도 수준의 분이 접근하시면 좋을 것 같습니다
캐라스 쓰면서 연구하고 있는데 물론 이제 다 할 수 있죠
다 할 수 있는데 처음 하시는 분들 입장에서 처음 하시는 분들 입장에서 근데 또 반면에 이제 텐서플로우를 제가 좀 권하기 많이 권하는 부분은 약간 좀 로우 레벨에서부터 접근하는 게 있다 보니까 아주 기초적인 개념을 익히기엔 좋기는 하거든요 제가 만약에 케라스부터 배웠으면 이 조금 더 이렇게 앞단으로 나가기 좀 어려웠을 거라는 생각은 좀 하기는 해요 원래 처음부터 알고 있었던 게 아니어 가지고 뭐 그런 부분들도 있고 해서 사실 이게 뭐 사람마다 다 달라 가지고 이제 정말 케바케라 가지고 뭘 어떻게 말씀드릴 수 없지만 어쨌든 제가 보기에 그리고 이쪽 지금 저희 쪽 연구소나 아니면 논문이나 이런 거 하시는 분들 보면 주로 프로덕션으로 갈려고 그 목적으로 하시는 분들은 텐서플로우 정말 순삭 연구 목적으로 하시는 분들은 파이토치 이렇게 갈리고 있는 거는 맞는 것 같아요
지금 진주님의 말씀을 요약하자면 텐서플로우 책을 사지 않을 거면 캐라스 책 사지 말고 파이토치를
해라
처음 입문자용이니까 저도 공감을 하는게 저
같은 경우에는 어떻게 하냐면은 캐럿을 주로 많이 쓰긴 하는데 이제 왜냐하면은 제가 하는거는 이게 이제 학습이 되느냐 아니면 가능성을 보이는 거고 나머지 이제 뭔가 어드밴스티로 가가지고 치열하게 숫자 싸움에 들어가면 성능 싸움에 들어가면 당연히 PyTorch 텐서플로우를 해야 되는데 그게 아니라 정말 이게 실행 가능하냐 학습 가능하냐 이 정도 수준 볼 땐 사실 Keras만으로도 충분하거든요.
제가 생각해도 그렇습니다. Keras가 웬만한 모델은 다 커버할 수 있어서 그냥 하면 되는데 이제 얼마나 더 깊게 할 거냐에 차이가 좀 있는 것 같아요.
맞아요.
그러니까 뭐 케라스 걱정하시는 분들 케라스로는 뭐 레스넷 이런 거 안 되는 거 아니야? 하지만 다 되거든요. 다 되니까 이제 하면 되는데 이제 문제는 이제 자기가 이제 스트록 쳐가지고 이제 장난을 치고 싶단 말이에요. 뭐 장난을 치고 싶고 중간에 막 이렇게 인터넷에 보고 싶고 이럴 때는 확실히 파이톨치를 써서 연구하는 게 연구하는 재미도 있고 재밌더라고요. 근데 이제 그걸로 제가 이제 막 바꿔가지고 막 하려고 막 하고 있는데 제가 같이 프로젝트 하는 업체가 있거든요 그 업체에서 그 업체 아저씨가 자기도 텐서플로우를 해야 된다고 그래서 우리 회사에서 텐서플로우로 상품을 해야 되니까 모든 코드를 텐서플로우로 바꿔달래요 그래서 텐서플로우로 다시 하고 있거든요 그러니까 여러분들 어차피 다 하셔야 될 것 같아요. 하시다가 더 끌리는 걸 하시면 되겠죠
익숙함의 차이지 사실상 이게 뉴럴렛을 구현한다는 관점에서 봤을 때는 물론 복잡한 부분도 있지만 대부분 다 사실 비슷한 로직으로 움직이는 거라서 그렇죠 그리고 되게 단순한 로직으로 움직이는 거라서 다른 프로덕트에 비해서 그래서 사실 큰 차이는 없다고 생각해요
익숙해지는데 뭐 그거에 대해서 어떻게 생각하세요? 파이톨치랑 텐서플로우랑 디파인 앤런으로 움직이는 텐서플로우에 대해서 먼저 설명을 좀 해주시고 거기에 대해서 왜 그렇게 텐서플로우는 움직일 수 밖에 없는지 그리고 파이토치가 어떤 장점을 제공하는지 그럼에도 불구하고 텐서플로우는 왜 많은 사람들이 쓰고 있는지 이런 것들을 좀 얘기해 주실 수 있으신가요?
일단 텐서플로우 같은 경우는 모델을 구성하는 부분과 실행하는 부분이 나눠져 있고 이게 디파이널론이고 파이토치나 캐란스도 마찬가지지만 모델 구성함과 동시에 실행이 되는 형태가 파이터치 같은 형태인데 아마 텐서플로 같은 경우는 이제 그 계산 효율성 하고 그 다음에 이제 분산학습 뭐 이런 것 때문에 그렇게 만든 것 같아요 근데 이제 이렇게 할 수밖에 없었냐라기 보다는 그냥 그게 더 편하니까 만든 것 같다는 생각이 들고요 뭐 지금 그게 텐서플로가 대세인 이유는 그냥 구글이 만들어서 열심히 홍보했기 때문에 인거 같구요 파이토치도 원래 토치가 있었는데 걔는 파이썬으로 된게 아니라 무화로 되어있어서 파이썬의 다양한 편의 기능을 쓸 수가 없잖아요 그래서 조금 뒤떨어지다가 파이토치 나오면서 확실히 좋아진거 같아요 그런 면이 있는거 같고 사실 텐서플로도 그래서 요즘에 이거 모드라고 하는게 나왔는데 보통 사람들이 파이토치 모드라고 하거든요 텐서플로 파이토치 모드 이런 것도 만들고 있는 거 보면 사실 뭐 그게 되게 중요한 이슈는 아닌 것 같아요 이렇게 처음에 만들 때 이런 문제가 있다 보니 저렇게 만들었고 그런 정도 수준인 것 같아요
제가 입문자분들을 위해서 부연 설명을 드리자면 텐서플로우 같은 경우는 어떻게 하는 거냐면 예를 들면 여러분들이 성냥개비로 성 같은 걸 쌓는다고 하면 먼저 뉴럴렛을 형상화하는 성냥개비로 그런 형상을 다 쌓아요 스트럭처를 다 쌓은 다음에 맨 마지막에 그 위에다가 데이터를 끼얹는 거죠 그러면서 학습이 되거든요 그런데 파이톨치 같은 경우는 한 번 중간에 삼연계별로 스트럭쳐를 쌓다가 데이터를 중간에 끼얹어 볼 수 있어요. 끼얹어 보고 이게 되나? 다시 만들다가 끼얹어 보고 이런게 가능하거든요. 근데 이제 당연히 이제 후자 쪽에 더 좋을 것 같은데 이제 진중님께서 말씀하시는 거는 이제 이렇게 먼저 디파인을 해놓고 나중에 런을 하면 런을 할 때 이 디파인이 픽스된 걸 가지고 이제 여러 분산 시스템이라든지 이런 것들에서 옵티마이즈 돼가지고 이제 실행을 할 수 있다는 거죠 속도면에서는 유리한 점이 있을 수 있다 뭐 이런 얘기였습니다
속도보다는 아무래도 이제 모듈어 관점이 좀 더 컸던 것 같아요 그냥 제 생각에 상상에 속도는 지금 보면 파이토치가 좀 더 빠르다고 하거든요 그런데 이제 제가 봤을 때는 분산 환경 목적으로 만들어서 그렇게 한 게 아닌가? 라는 생각이 좀 더 들긴 하더라고요.
오늘 같은 입장이시면 지금 빨리 파이토치 책을 내셔야 되는데요?
파이토치를 열심히 좀 한번 만들어볼까요?
내가 내야 되겠다. 내가 내가지고 제 책을 사세요
이래야 되겠네요. 처음 배우실 때는 팬서플로로 배우시는 게 좋습니다.
그럼 나중에는 3분 팀러닝 3가지를 해야되겠네요 텐서플로우, 케라스 맛, 파이토치맛 이런식으로 한번 더 해야되겠네요
제가 최근에는 텐서플로우보다는 파이토치를 좀 더 많이 쓰긴 했거든요 근데 파이토치가 훨씬 편하고 그런 면이 분명히 있는데 처음 파이토치나 케라스로 접하면 기본 개념 익히기엔 좀 어렵겠다는 생각은 좀 해요 그래서 좀 너무 그 하이레벨로 랩핑이 많이 되어있는 부분이 있다 보니까 텐서플로우도 하이레벨 api 들이 많이 있거든요 저도 지금은 그걸 쓰는데 이제 로레벨을 모르면 개념을 이해하기가 어렵기 때문에 처음은 텐서플로우 배우시는게 나은 것 같고 이제 그걸 배우고 그 다음에 진짜로 내가 뭔가를 정말 해봐야겠다 하고 싶으면 그냥 PyTorch나 Keras 튜토리얼 보면서 익히는 게 좋지 않을까 하는 생각을 좀...
네, 제가 알기로는 PyTorch는 그... 이런 단위로 다 조작이 가능한 걸로 알고 있는데 PyTorch도 그... 그러니까 PyTorch가 저는 Tensorflow랑 같은 그... 추상화 수준 관점에서는 같은 거라고 생각하고 있었거든요 근데 그게 아닌가요?
쓸 수 있는 함수나 이런 API들이 텐서플로우 같은 경우는 굉장히 로우 레벨까지 많이 쓰고 있고 파이터치는 보통 연구하시는 분들이 많이 쓰니까 로우 레벨은 많이 쓰지 않는 것 같고 약간 그냥 사용하시는 분들 차이가 좀 있는 것 같아요 만들어진 거는 둘 다 있어요 파이터치도 로우 레벨 API도 있고 텐스플로우도 로우 레벨이 되어있고 뭐 둘 다 정말 더 로우 레벨로 가면 15불로 되어있고 그러니까 사용하는 사람 입장 차이가 좀 있는 것 같아요 저는 사실 이게 코딩하고 이런거가 불편한 사람이 아니라서 이렇게 생각하는 걸 수도 있습니다
바이토치도 로우 레벨을 많이 제공하나요? 텐스플로우만큼 텐스플로우는 상당히 로우 레벨을 제공하잖아요 어찌 보면 딥러닝뿐만 아니라 보통 많이 화이터치
사용하는 그 api들 그냥 그런 함수나 모주라 제공하는 클래스나 이런 것들도 그 소스 보면 다 로우 레벨 api로 다시 랩핑을 하고 그런 것들이어서 다 있기는 있습니다 그냥 별로 안쓰는거고 저도 사실 텐서플로우 같은 경우는 실무했을 때는 로우 레벨 api를 그렇게 많이 쓰고 그러진 않으니까요
우리가 보면은 지금 현재 파이토치도 나오고 케라스도 나오고 텐스플로우도 나오는데 그 사용빈도를 보면은 10일 전에 이야기인데 텐스플로우가 273 정도라면 케라스를 100으로 기준을 했을 때 그 다음에 파이토치가 72 이렇게 되어있거든요 카페도 여전히 많아서 많이 쓰고 있고요 그러니까 이제 저희 말씀하시죠
그 숫자는 뭘 말씀하신, 뭘 계산으로 말씀하신거죠?
사용빈도 예, monthly 그 archive에서 mention한거 그러니까 논문에서 뭐를 써서 이제 논문에 패키지 뭘 썼는지 하면은 텐스플로우가 한 273번을 한달에 써야 했다면은 100번, 그 다음 파이터워치는 한 72번 그러니까 논문에 내가 어떤 툴을 써서 했다 이런게 나오잖아요
근데 이게 아마 캐라스가 좀 작년까지 텐서플로 많이 써서 그런거 같고 아마 올해 역전되지 않을까라는 생각을 제가 합니다 저희 쪽에 있는 분들을 보니까 연구하시는 분들은 실무하시는 분들은 텐서플로 많이 쓰시는데 연구하시는 분들은 정말 다 화이트우치만 쓰세요 텐서플로 안쓰시더라구요
음...
저 깜짝 놀랐어요 그래가지고 왜 파이터치를 이렇게 많이 쓰지라고 생각하고 실제로 제가 써보니까 확실히 연구하시는 분들 입장에서 봤을 때는 편한 거는 맞는 것 같아요 그리고 다른 부가적인 기능들이 많이 있어요 데이터 로딩하는 거라던가 이미지 변환하는 거라던가 이런 거에 대해서 좀 편안하게 구현이 되어있고 텐서플로우도 기능이 있긴 하지만 파이터치가 조금 더 편안하게 구현이 되어있고 쓸 수 있게 되어있고 문서도 좀 더 잘 되어있고 그런 면이 좀 있더라구요
네 파이톨치는 정식으로 나온지가 좀 더 최근이죠 텐서플로우 보다는 그렇죠
작년에 나왔으니까
네, 오늘의 승자는 파이톨치가...
저도 얘기한다고 하실 때 되게 고민 많이 했거든요 요즘에 파이톨치 연구자분들은 파이톨치를 제일 많이 쓰고 있는데 케라스랑 텐서플라다닌... 이런 동화가 좀 있긴 있었어요
네, 근데 저는 사실 제가 계속 듣는 느낌이 프로그래밍 언어도 C가 있고 그 다음에 파이턴이 있고 그 다음에 뭐 자바가 있고 다 뭔가 뭐 나온지 다 뭐 10년 넘긴 했지만은 공존해서 각자의 역할을 수행하면서 잘 공존하고 있잖아요 그리고 들은 느낌이 유럴렛으로 뭔가 프로젝트를 하면은 사실 프로젝트를 뭔가 했을 때 코드 양이 그렇게 크지 않다는 생각이 많이 들거든요 제가 이제 프로젝트 같은 거 이제 실제로 그 돌아가는 거 코드를 보면은 그 코드가 길지는 않아요 보니까 당연히 그 코드를 만들기까지 굉장히 많은 실험을 했겠지만은 결과물이 그렇게 어 어떤 엄청난 몇 천만 라인 그런 코드가 아니면은 가장 자기한테 편한 걸로 시작을 해서 뭔가 이토레이트를 해서 그 다음에 나중에 이제 필요할 때 만약에 그걸 뭐 현압 모바일 폰에 올린다 그러면 이제 뭐 그때 처음에 파이터워치나 케라스로 시작을 해서 나중에 텐서플로우로 다시 구현을 해도 그게 그렇게 부담이 되는 그런 상황은 아니지 않을까 그런 생각이 좀 드는데 뭐 어떻게 생각하시나요?
그리고 Keras는 아까 얘기했듯이 PyTorch, TensorFlow 같은 것들은 엔진이잖아요 엔진이고 금방 또 진중님이 말씀하시긴 했는데 TensorFlow도 상위레벨 인터페이스들이 나오잖아요 TF-Run 이라든지 그죠 그러니까 이제 상위레벨 툴이냐 아니면 하위레벨 엔진들이냐 그래서 만약에 인공지능의 자동차를 좀 비교해보면 될 것 같아요 자동차를 해서 그 볼트 너트라든지 바퀴 같은 걸 이렇게 하나씩 만들어서 결국은 차를 만들어가는 거는 그거는 텐스플로나 파이터치고 여전히 힘든 거죠. 여전히 이제 인공지능 자체를 많이 알아야 되고 수식을 좀 많이 알아야 되고 그렇고 케라스는 그런 볼트 너트도 아니라기 보다는 바퀴가 있고 핸들이 있고 했을 때 탁탁 붙이기만 하면 되는 약간은 그 인공지능 자체를 만든다기 보다는 인공지능을 이용하는 사람들 그렇지만 자동차를 타고 다니는 사람은 아니죠 타고 다니는 사람은 또 인공지능을 활용하는 사람이고 자동차를 부품 단위에서 만드는 것은 텐스플로우나 파이터치면 좋은 툴들이 엔진들이 많다고 보고 그 위에서 바퀴라든지 핸들이라든지 사와서 붙여서 자동차를 만드는 게 중요하잖아요 그 안에 어떤 볼트넛을 썼는지 보다는 그게 캐러스이기 때문에 경쟁하는게 좀 틀릴 것 같아요 같은 인공지능 패키지라고 하더라도 예를 들어서 파이토치라고 하더라도 상위 레벨 인터페이스는 없잖아요 어차피 하나씩 사람들 다 구현해야 되다보니까 조금 복잡해지는 갠도 예를 들어서 프로그레시브 갠 같은걸 내가 구현해봐야겠다 그렇다보면 코드 라인 수가 상당히 많아지고 디버깅하고 구현하는데도 시간이 많이 그릴 수 밖에 없지만 캐러선에 그런 볼트넛들 걱정할 필요가 없으니까 아주 빠르게 구현할 수 있는 거죠 빠르게 구현하고 프로그레시브 간 자체를 연구하는게 아니고 프로그레시브 갠을 이용해서 내가 하고자 하는 어플리케이션에 적용하는 분야가 좀 틀리죠 그럴 것 같아요 서로가 가는 길이 틀린거죠
약간은 네 저도 그렇게 생각을 합니다 그래서 이제 공존이 뭔가 가능하지 않을까 테라스랑 센서플로우가 공존할 수 있고 또 파이터워치도
공존할 수 있고 네 연구하시는 분들은 사실 하나만 쓰면 아무거나 그냥 뭐지 이름 맘에 드는 거 하나 쓰시면 될 것 같고요 이제 프로덕트를 만드시는 분들은 무조건 다 써야 됩니다 제가 봤을 때는 다 할 줄 알아야 돼요
그 연구하는 거에 있어서 그 어떤 연구냐인데 인공지능을 연구하는 사람은 텐스플로우를 확실히 좀 공부하고 파이터치를 좀 연습 삼아 써보고 하면 되고 연구 자체가 양자화학을 한다든지 인공지능을 활용하는 연구 있잖아요 뭐 통신분야에 활용한다든지 바이오분야에 활용한다든지 메디카를 진단하든지 이런 사람들은 아무래도 케라스를 하나 올려놓고 케라스 밑에 텐스플로우를 깔고 이렇게 하는게 좀 좋지 않을까 저는 그렇게 생각합니다
네, 근데 그 PyTorch에도 뭔가 상위레벨 API가 있지 않았나요? 레이어 단위로 뭔가 그 레이어 단위로 만들어서 뭔가 돌려볼 수 있는 거 있었던 거 같은데 제가 최근에
봤던 걸로는 어, PyTorch랑 TensorFlow도 둘 다 있죠 근데 뭐 제가 그런 걸 써본 적은 없는데 둘 다 있긴 있는 걸로 알고 있어요
테스트를 하는 게 엄청 어렵지만 tf.run 해가지고
하면은 tf.run 말고 그냥 레이어라는 그 모듈이 생겼습니다 그래가지고 그 레이어라는 모듈에 하이레벨 api 들이 좀 많이 있고요 그거를 쓰면 되고 근데 뭐 이걸 쓰든 저걸 쓰든 사실 코드 줄 수 차이로는 몇 줄 차이가 나지 않아가지고 뭐 그렇게 크게 크게 다르다는 생각이 들지는 않기는 해요 텐서플로우 같은 경우는 작년 초 재작년 초 이정도 수준에서는 좀 어렵긴 했거든요 그때는 하이레벨 API가 없어서 지금은 뭐 다 있어가지고 크게 어렵지는 않은 것 같아요
그 TF 그 이제 LSTM 같은 거를 만약에 그 상위 레벨이 없이 한다 그러면 상당히 복잡하지 않나요? 뒤에 텐서플로우 바로 짜버린다고 그러네요.
있어요. 그 그냥 한 줄로 쓸 수 있게 해주는 그 api 들이 있어요.
그죠. 그리고 이제는 그렇게 생겨버린 것 같더라고요.
그래서 사실 그냥 이름 맘에 드는 거 쓰는 게 좋지 않나. 근데 그런 것도 있어요. 사실 그 타이토치, 텐서플로우 같은 경우는 제가 봤을 때 기본 개념이거나 이제 프로덕션 하기에는 진짜 좋긴 하거든요. 근데 코딩할 때 약간 자연스럽지 못한 경향이 좀 있습니다 이게 그 파이썬으로 되어 있음에도 불구하고 파이썬스럽게 코딩할 수 있게 안 돼 있어요 그래가지고 조금 부자연스러운 면이 있긴 있습니다 그런 부분이 있고 근데 그래서 그리고 그 제가 이제 이런 거를 물어보고 물어보니까 약간 이런 시각 차이가 좀 있는게 이쪽에서 하시는 분들은 이제 대부분 연구자분들이었고 저같이 이제 원래 그냥 다른 일을 하던 엔지니어 진짜 제품만 만들던 사용자한테 나가는 제품만 만드는 엔지니어들은 많지 않으시더라구요 그래서 프로덕션의 기준이 좀 많이 다르긴 하더라구요 그래서 보면 이제 되게 약간 연구자분들하고 그냥 서비스를 만드는 사람, 프로덕트를 만드는 사람하고 생각하는 프로덕션의 기준이 좀 달라서 좀 그런 부분이 있긴 한데 어쨌든 프로덕션 기준이 다르다는거죠? 약간 이제 성능적인 측면이라던가 성능이라 하면 속도도 있지만 이게 이제 예를 들어서 클래시피케이션 하는 것 정도는 조금 달라도 괜찮은데 요즘에 이제 뭐 제너레이션 하는 부분들 생성모델 같은 경우는 아무리 좋은 생성모델이 나왔어도 그걸 그대로 쓸 수가 없어요 너무 후지기 때문에 그 논문 같은데 나오는 아무리 좋은 그 뭐 연구결과를 봐도 이거는 프로듀션이 절대 쓸 수 없어라는 생각이 먼저 들거든요 저는 근데 이제 연구하시는 분들은 이정도는 쓸 수 있잖아 라고 생각하시는 분들이 좀 있긴 있더라구요 고정 그런 정도의 차이? 그게 좀 있어가지고 갑자기 다른 얘기를 하게 되네요 그래서 이제 결론은 프로덕션 했을 때는 파이터치는 조금 제가 봤을 때 그런 것 때문에 그런데 파이터치가 최근에 이제 ONNX라고 이제 공통으로 그 학습된 모델을 쓸 수 있게 하는 포맷을 이제 MS랑 어디랑 이렇게 만들어가지고 파이터치에서도 ONNX라는 모델을 쓸 수 있게 해주고 다른 데서도 쓸 수 있게 해주고 뭐 이런 것들이 있거든요 카페로도 이제 전환할 수 있게 해주고 이걸 가지고서 이제 프로덕션을 쓰면 되지 않냐 라고 하시는 분들이 좀 있더라구요 근데 그렇게 하기에는 프로덕션을 쓰기에는 좀 어려운 면이 좀 있는데 요런 부분들에 대한 간극이 있어서 프로덕션은 파이터토치가 좀 아직은 아닌 것 같다는 생각을 하는 뭐 그런걸 말씀드리려고 되게 정확하게 얘기했네요
제가 궁금한게 있는데 그 텐스플로우는 구글이 핸들 하면서 오픈소스 잖아요 어떤 분들은 그래서 실제로 상품화를 시킬 때는 카페로 해야 된다는 말을 옛날에는 하는걸 제가 들었거든요 그런 것도 좀 있나요? 그러니까 실제 상품할 때는 카페로 구현을 해야 되고 텐스플로우는 구글이 핸들하기 때문에 아무래도 라이센스 문제라든지 이런 것들이 좀 전혀 상관없습니다 그런 건 없나요?
네 그거랑은 전혀 상관없습니다
아 그래요?
카페로 카페가 모바일 쪽에 조금 이제 작년까지 작년 초반까지는 카페가 모바일 쪽에 좀 더 최적화되어 있었고 텐서플로우는 모바일에서 돌리기는 조금 무거웠었는데 이제 그런 부분은 좀 있을 수 있었고 최근에는 이제 텐서플로우 라이트나 뭐 이런거 나오면서
좀 더 좋아지는 느낌하고 네 저희도 사실은 어 메신저 앱이지만은 그 사진 비디오를 이제 전달하는 메신저 앱이잖아요 스냅챗이 그래서 어 사용자가 사진을 찍으면 그 사진을 변형시켜서 보낼 수 있게 해주는 다양한 효과가 있는데 그 중에 스타일 트랜스퍼 같은 걸 적용을 해서 모바일 앱으로 프로덕션에 올리는 걸 봤는데 텐서플로우를 사용을 하고요 그 다음에 말씀하신 대로 데이터를 모으는 게 스타일 트랜스퍼는 그나마 간단한데 다른 종류의 시도도 여러 번 있었는데 대부분 다 데이터를 모으는 게 너무 어려워서 포기를 하셨던 약간 그런 스토리를 좀 들었습니다 어쨌든 MXNet이라는 것도 최근에 많이 쓰려고 하는 것 같은데 MXNet은 아마존 AWS에서 지원을 기본적으로 해서 좀 더 많이 쓰려는 것 같은데 그건 어떤가요?
그게 처음에는 MXNet이 나올 때 원래는 상당히 인기가 있었잖아요. 있다가 뒤는 그냥 TensorFlow 차이가 없으니까 그냥 쑥 줄어들었다가 최근에 이제 Keras의 엔진으로 들어갔잖아요. 텐스플로우를 엔진으로 썼을 때는 100열로 해서 여러 GPU를 동시에 돌릴 수가 없는데 MXNet은 GPU를 여러 개를 돌릴 수 있도록 Keras에서 할 수 있었거든요. 그래서 Keras 하는 사람들이 엔진을 MXNet으로 좀 바꾸고 했죠. 근데 이제 그것뿐만 아니라 아무래도 아마존하고 구글은 요즘에 상당히 경쟁관계잖아요. 스피커도 두 개 다 내놓고 해서 그래서 아마존 입장에서는 MX 넷을 자기들의 어떤 인공지능 엔진으로 상당히 키우고 싶어한다 제가 그렇게 들었거든요 자세한 거는 좀 더 봐야 되지 않나 싶거든요
네, 테스트 어플로가 병렬로 GPU를 사용할 수 없나요?
쓸 수 있죠 근데 조금 복잡해요 사용하는 방법이 그냥 바로 되진 않습니다 그게 크게 어려운 건 아닌데 조금 불편하죠 다만 그 외 장점은 다른 엔진들에 비해서는 프레임워크들에 비해서는 한 머신 내에서 병렬로 GPU를 사용하는 것 뿐 아니라 여러 대의 머신에 분산 학습 시킬 수 있는 방법은 이제 텐서플로우가 그것도 지원한다는 부분은 조금 다른 면이 있죠 그렇게까지 쓸 곳이 많지는 않을 것 같긴
한데요 근데 그 텐서플로우로 만약에 내가 GPU가 두 개가 있다 컴퓨터에 두 개가 있다 그러면 그거를 코드를 안 바꾸고 두 개를 동시에 돌릴 수가 있나요?
코드를 안 바꾸지는 않고 코드를 좀 바꾸긴 해야돼요 배치를 잘라서 나눈다거나 아니면 안에 있는 모델 중에 일부를 잘라서 데이터를 잘라서 넣는다거나 하는 작업들을 좀 하긴 해야됩니다 복잡한건 아니죠?
복잡하진 않지만 코드를 바꿔야 되고 스케줄링을 본인이
좀 해야되고 스케줄링까지는 아니고 그냥 코드에 몇 줄 정도 더 추가하면 되는데 그렇다고 해서 이게 아주 편하게 되는 건 아니니까 좋다고 할 수는 없는 거죠
레이어를 손댈 필요는 없나?
네 레이어를 손댈 필요는 없습니다
아 그래도 동시에 이렇게 하면 그러면 효율이 뭐 상당히 잘 나오나요?
그거는 이제 실험적으로 좀 해봐야 되는 거죠 모든 마찬가지긴 하지만 그런 면에 있어서 좀 더 커스터마이징 하기 편한 면이 있다고 할 수 있죠 이를테면 파이터즈 같은 경우는 멀티GPU 쓰려면 사실 그냥 API 한 줄만 추가하면 되는 정도 수준이거든요 근데 그렇게 됐을 때 과연 얘가 어디에서 어떤 네트워크가 어떤 GPU에서 돌아가고 이런 것까지 파악하기는 어려우니까 성능 최적화하기가 조금 어려울 수 있는데 그런 관점에서 보면 텐서플로우가 성능 최적화하기는 좋을 수 있으니까 오히려 좋은 점이 있다고 할 수도 있고요 근데 불편하죠. 보통 일반적인 용도로 쓰기에는.
그러니까 그때 한참 케라스에서는 MX넷으로 바꾸는 건 요즘에 GPU를 한두개 두개씩 네개씩 가지고 있는 그런 경우가 많잖아요. 그러니까 엔진만 MX넷으로 교환하면 케라스 코드를 하나도 바꿀 필요 없이 그때 효율도 상당히 잘 나오더라구요.
처음에 멀티GPU 쓴게 파이터치를 먼저 쓰고 그 다음에 텐서플로우를 시도를 했었는데 파이터치 너무 쉬워가지고 이렇게 해도 원래 되는거야? 이 정도 될정도 너무 쉬워가지고 약간 놀라기는 했었어요 편하긴 해서 아마 케라스도 그런식으로 되어있을거 있는걸로 알고있구요
아 뭔가 병렬GPU가 지원되는거는 어찌 보면 딥러닝 프레임업의 기본 중에 기본인 것 같은데 뭔가 그 텐서플로우가 시험판 같은 느낌인데요.
텐서플로우가 약간 그런 게 있는 것 같아요. 이게 제가 전에 코드 처음 시작한, 지금도 그런지 모르겠는데 처음 텐서플로우 배울 때 뭐가 자료가 없어가지고 텐서플로우에서 제공하는 예제랑 그 안에 있는 소스들 가지고 공부를 했는데 약간 이제 반은 되게 반은 진지하고 반은 약간 비꼬는 얘기인데요 구글에 계신 분이 너무 똑똑하니까 이 정도는 사람들이 알아서 다 하겠지만 약간 이렇게 만드는 것 같아요
약간 좀 그게 있는 그 개발자에 맞게 그 사람들 필요 없는 건 안 만들어 버리는 거죠 메뉴얼도 그렇고 그 인터페이스 라이브러리도 그렇고 이정도는 뭐 그냥 하는거지
뭐 약간 이런식으로 생각하고 만드는거 같아요
그니까 이정도는 다 알겠지 이렇게 하면서 그리고 약간 펑션한 프로그래밍 개념이잖아요 이제 오브젝트 오리엔테달보다는 텐스플로우가 그렇죠
근데 뭐 그런 이제 모듈을 안 만든거긴 하죠 굳이 그렇게까지 만들 필요가 있나 싶어서 근데 사실 뭐 저기 뭐 파이터치도 뭐 그런식으로 구현 안해도 되는데 이제 그렇게 해놓은거고 좀 더 모듈을 할 수 있도록 텐서플로우도 그렇게 할 수는 있는데 굳이 안한거 같아요
네 태리님 네 안녕하세요 태리입니다
잘 지내셨죠?
자기소개부터 다시 해야될거 같은데 TV 시작했나요? 거기 확인을 좀 해봐야겠어요 계속 듣고 있었는지 뭐 지금 한 병
비웠고요 저는 아직 GPU가 하나인가요?
GPU 하나 더 빨리 우리가 만들어줘야 될
것 같은데요 여러분 그 세상에 살고 있는 99.9%의 사람들은 GPU 하나를 가지고 삽니다
갑자기 갑자기 그 생각이 났는데 진영님이 먼저 질문 하실 걸 정해주시고 싶은 질문 적어주신 것 중에서 효율적으로 하는 방법이라던가 그런 걸 물어본 게 있으셨는데 결국 빠르게 하거나 효율적으로 하려면 돈을 발라야 된다. 이쪽은 그냥 돈 받는게 최고다. 좀 그런 느낌이 좀 있어요.
기승전 돈입니다.
여러분.
기승전 돈. 책 내신 것도 책 많이 팔아서 GPU 하나 더 사려고 그런거 아닌가요?
그렇죠. GPU가 그게 병렬이 안되잖아요. 하나의 테스크를 돌리고 있으면 그동안 좋긴 한데 시니까 좋긴 한데 제가 해보니까 4개는 있어야 편하더라구요 하나 둘 이렇게 돌려놓고 또 이제 가끔은 그 결과를 하이퍼 파라메탈을 따르게 해가지고 봐야 되잖아요 그래서 한 두개는 한개는 좀 부족하고 두개는 아쉽고 한 세네개? 근데 이제 말씀하신대로 이제 그게 다 돈이니까
결국은 돈으로 이게 이 타이밍에서 광고를 좀 해야 될 것 같은데 네이버에 보시면 안돼요!
안돼요! 안돼요!
안돼요!
광고비 주고 하세요!
광고 막아!
광고 막아!
제가 진짜 광고를 하려고 하는건 아니고 제가 진짜 그거 돈을 발라야 된다 이거를 얘기 드렸던게 저는 아예 여기 입사하기 전에 GPU 자체를 갖고 있지 않아가지고 그냥 하다가 갑자기 문득 해보고 싶은게 있어가지고 사이클 겐을 gpu 4개짜리로 돌리는거를 파라미터를 쫙 바꿔가지고 12개를 돌려봤거든요 한번에 gpu 48개를 쓴거잖아요 그러고나서 나중에 생각해보니까 돈을 발라야되는구나 그생각이 좀 들었어요
근데 이제 사실은 돈을 바르는건 맞는데 예전에는 이제 gpu를 다 사야됐지만은 요새는 이제 그 클라우드에서 다 빌릴 수 있지 않습니까?
그렇긴 하지만 그것도 돈이니까요.
네, 저 같은 경우는 최근에 제가 실험용 머신을 만들고 싶은데 그거를 이제 실제 뭐 티탄 GPU를 사가지고 뭔가 만들 것이냐 아니면 이제 구글 클라우드 같은데 GPU 머신 어 이제 제가 만들 수가 있으니까 버츄얼 머신 같은 거를 그걸 할 것인가 했는데 그 제꺼를 만드는게 사실 별로 의미가 없는 것 같더라구요 어차피 모델 계속 바뀔 거고 제가 얼마나 뭐 계속 그걸 풀타임으로 지금 당장 하지도 않을 건데 그런 의미에서는 정말 뭐 gpu 를 예전에는 장벽이라고 생각을 했었을 것 같은데 점점 그런게 줄어드는 것 같아요
네 그러다가 최근에 또 엊그제 구글이 오토 ML로 딥러닝 모델 쉽게 만들 수 있는 서비스도 발표를 했잖아요 딥러닝 기술 자체를 몰라도 모델을 만들 수 있는 시대가 되어버렸으니까 또 애매한 지금 입장이 될 수도 있죠
아, Keras보다 더 쉬운 건가요? AutoML 쓰면?
Keras 같은 거가 아니라 데이터를 넣으면 자기가 알아서 모델을 만들어줍니다 코딩이 필요 없는 거죠 그리고 그게 이제 학습을 제가 해가지고 모델이 만들어지면 인퍼런스 하는 것도 API로 제공해서 그냥 쓸 수 있게 이렇게 해주는 지금은 비전 쪽만, 이미지 비전 쪽만 이제 공개를 했는데 그걸 뭐 앞으로 다른 것까지 다 공개를 한다고 하니까 이제 진짜 뭐 말 그대로 지금 우리가 Keras를 쓰는 게 더 빠르다느니 뭐 TensorFlow로 쓰는 게 프로덕션에 좋다느니 이런 말이 사실 의미가 없어지는 시기가 올 수도 있죠?
갑자기 좋으려나?
이러고 하면 크래시피케이션인가요? 미전, 그니까 뭐...
네, 지금 아마 정확하게는 제가 모르겠는데 크래스티케이션 쪽으로 주로 하는 것 같아요
그런 거면은 지금 최근에는 그냥 그 뭐죠 이미 레스넷이나 뭐 있는 걸로 가지고 하고 약간 좀 파인트닝 하고 그 정도 수준이
아니고 그런 신경모델 레이어들 정도까지 구성을 자기가 이제 막 바꿔서 튜닝 해가지고 다 만들어주는 거죠 내가 뭔가를 넣어서 하는게 아니고 모델을 만들어서 뭔가 해놓고 얘를 튜닝해줘 이게 아니고 그 모델을 만드는 과정 자체가 없는 없이 알아서 만들어주는 최적화 되는거네요? 신기하네 최적화 문제는 아니고 아예 그냥 모델 최적화도 해주지만 모델을 바닥부터 만들어주는 것 까지
다 자동으로 한다는거죠 데이터만 넣어주면 그렇게 해준다는거죠
근데 그게 아직도 어려운 문제 아닌가요? 레이어를 몇 개 써야되고 그 레이어당 또 가중치를 몇 개 써야되고 컨볼루셔널은 또 필터의 사이즈를 3x3으로 할지 8x8로 할지 그게 이제
작년에 굉장히 그 센세이션 했던 그 논문에 오토에이멜 논문에 보면 사람이 만든 것보다 그걸로 통해서 만든게 훨씬 더 그 정확도가 좋았다 뭐 이런 논문도 구글에서 나왔거든요 그걸로 하면서 만드는 것 같아요
그럼 데이터 양도 좀 관련이 있을 거잖아요
데이터가 많으면은 좀 데이터 종류나 이런 거에 따라서 이제 미리 그 보일러 플레이트 같은 거는 만들어 놓고 그거를 몇 개 만들어 놓고 그 중에 선택해서 이제 시작은 하겠죠 그런 식으로 하는 것 같아요 근데 어쨌든 간에 이제 사람이 모델을 지정하거나 이럴 필요 없이 알아서 이제 판단해서 만들어 주겠다
뭐 이렇게 네 그것도 사실은 뭐 이미 프리트레인드 모델에서 시작을 해가지고 네트워크 파라미터가 사실 정해져 있을 테니까 그것도 결국에는 컴퓨팅 파워만 충분하면 그렇죠.
돈을 바른다는 얘기죠.
그렇죠.
결국에는 그거에 이제 얼마를 쓸 수 있느냐 이제 그 문제인데 사실은 뭐 서비스를 제공하는 입장에서 이제 그게 수요만 검증이 되면 그만큼 컴퓨팅 파워는 충분히 넣어서 이제 해볼 수 있는 그런 것 같긴 한데 참 세상이 빠르게 변하고 있구나.
빠르게 변하고 있구나.
빠르게 변하고 있구나.
빠르게 있구나.
변하고 빠르게 변하고 있구나. 빠르게 변하고 있구나.
빠르게 있구나.
빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나. 빠르게 변하고 있구나.
빠르게 변하고 있구나.
빠르게 변하고 있구나.
빠르게 변하고 아 좀 약간 분위기가 다운되는 것 같네요.
큰일 났다.
화제를 좀 늘려서.
그렇죠. 근데 Keras로 해서 지금도 프리트레인 모델 쓰고 이렇게 하면 생각만큼 이렇게 힘들지는 않잖아요. 레이어 하나 정도만 옵티마이저 하면 되니까.
그렇죠.
그러면 뭐 그게 레슨에서 선택한다든지 하나 선택해가지고 해보면은 클래시피케이션이나 비전 문제는 오토 ML을 물론 뭐 더 좋다면 할 수 없지만 그렇게 힘든 일이 아닌데 근데 그걸 사람이 안하고
기계가 해주니까 굳이 그걸 배울 필요 없이도 할 수 있게 해주겠다
이렇게 그쵸, 서비스로 만드는 건 다른 문제인데 서비스로 그걸 만들었다는 거는 그만큼 이제 그렇게 자동화할 수 있는 어떤 기술 자체가 좀 성숙했다 그런 의미가 아닐까 네 어쨌든 뭐 네 지금 프레임워크에 대해서 굉장히 많이 그 얘기를 나눴고 게다가 이제 마지막에 이제 사실은 저는 이제 프레임워크의 미래가 뭘까 약간 이런 거에 대한 질문을 드리고 싶었는데 프레임워크의 미래는 뭐 오토에메리타? 그런 그런 결과인가요?
저는 그렇다고 생각은 해요
사실 근데 그게 얼마나 미래인지가 참 문제일 것 같은데 예를 들어서 그 세탁기를 생각해보면 사람이 옷만 집어넣으면 개가지고 이렇게 입기 해주면 제일 좋잖아요 그럼 뭐 세탁 걱정이 없는데 사실은 그거까지는 안되잖아요 세탁기 돌리는 주지만 우리가 다 꺼내서 개화되고 또 옷을 구분해서 넣고 이렇잖아요 그래서 이상은 그렇게 오토요메일이 뭐든 다 해준다고 하지만 아 그거는 조금 시기상적이지 않을까 싶은데요 일부 어플리케이션에 적용하는 거지 조금만 복잡해지면 점점
더 있지 않을까 그 범위가 늘어날 거라고 생각을 하고요 제가 봤을 때는 딥러닝이 물론 모델이라던가 아니면 기초기술 개발하는게 굉장히 중요하긴 한데 서비스하거나 프로덕션 입장에서 봤을 때는 또는 이제 아주 응용적인 연구를 봤을 때는 딥러닝 모델 자체를 어떻게 개발하냐 보다는 데이터를 어떻게 정의하느냐에 따라서 이게 달라지는 거라서 그 부분에 대한 문제를 어떻게 해결할 거냐가 사실 큰 부분인 것 같아요 그 부분을 이제 비전 쪽은 되게 쉬우니까 상대적으로 상대적으로 쉬우니까 비전을 먼저 한 거고 이제 뭐 자차 그걸 하지 않을까 생각이 듭니다
사실은 그게 데이터 사이언스 입장에서 보면 인공지능 연구가 아니고 데이터 사이언스 입장에서 보면 인공지능은 말해보잖아요 뭐 어쨌든 간에 데이터 자체를 잘 분석하고 하면 되니까 그래서 사실은 캐러스를 써라 이런 건데 이제 AutoML이 나와버리면 사실은 그냥 프레임워크의 개념이 필요 없어져버리는거죠
그렇죠 그걸 노리고 구글이 이걸 하는거죠
근데 저는 반대로 이제 AutoML로 뭔가 AutoML을 할 수는 있죠 할 수는 있는데 그걸로 얼만큼 성능이 보장이 되느냐 그리고 이제 성능이 보장 성능이 자기가 원하는 성능이 안나왔을때 AutoML은 답이 없잖아요 AutoML은 그냥 물론 제가 보지는 않았지만 아무래도 이제 추상화 제가 아까 말씀드린 추상화 계층에서 보면 가장 추상화가 높은 건데 그러면 이제 실제로 자기가 뭔가 벽에 부딪혔을 때 해볼 수 있는 경우의 수가 더 적은 거죠
일단은 이제 내려올수록 일단 사람은 사람의 능력을 너무 과신하는 경향이 있다고 저는 생각하고요 오토엠엘 논문에 보면 보통의 ML 엔지니어가 만든 모델보단 훨씬 좋았다라고 나오기 때문에 물론 이제 아마 오토ML의 서비스에 처음부터 있을지는 잘 모르겠는데 텐서플로 모델이나 이런 걸로 익스포트 해주거나 그런 기능이 있지 않을까요? 그걸로 뭐 할 수도 있을 것 같고 음, 그렇죠.
네, 그럼 한번 봐야 될 것 같습니다. 근데 어쨌든 저도 이제 그 성진님 말씀대로 사실은 정말 도메인마다 너무 다른 것 같아요 그래서 이미지가 예를 들어서 메리컬 이미지가 내가 그 셋이 있는데 그걸 가지고 오토에멜을 바로 쓸 수 있을 것인가 그거에 대해서는 사실 써봐야 아는 문제이긴 하지만 굉장히 조금 어려울 수도 있지 않을까 생각이 듭니다
일자리를 뺏기지 않으려고 하는 개발자들의 어쨌든 뭐
네 그 어쨌든 프레임워크 얘기를 많이 나눠봤는데요 어 이제 뭐 실제로 이제 오늘 이제 프레임워크 어 그리고 이제 활용에 대한 약간 특징이기 때문에 어 이제 뭐 프레임워크에 사실 뭐 활용을 쉽게 해주는 게 맞는데 그래도 이제 활용이라는 게 이제 지금 뭐 데이터 품질 얘기도 나왔고 뭐 여러가지 이제 이슈가 있다 그런 어 말씀을 나누면서 여러가지 그런 활용에 있어서의 이슈들이 나왔는데 여기 계신 분들은 딥러닝을 실제로 프로젝트에 활용을 해보시면서 어떤 이슈가 있었다 그런거에 대해서 조금 말씀을 해주시면 좋을 것 같은데요 뭐 아니면 이제 그냥 활용이 아니라 어쨌든 딥러닝을 내가 그냥 이런게 있다를 아는거랑 실제로 이걸 해봤을 때랑 어떤 차이가 있었다 그런 부분에 대해서 저는 말씀을 들었으면 좋겠습니다 성재님께서 조금 메디컬 쪽 문제 계속 활용을 하셨던 것 같은데 어떤 문제였는지 설명을 해주실 수 있나요?
네, 실제로 딥러닝은 두가지로 구분할 수 있을 것 같아요 그 아까 자동차 이야기는 참 그게 재밌다고 생각하는데 자동차를 하나씩 만들 거냐 아니면은 이제 있는 부품들 갖다 써 가지고 내가 원하는 자동차로 하고 그리고 내가 이제 가고 싶은 곳을 타고 가는 그런 게 있는데 예를 들어서 메디칼 같은 경우는 그 연구할 때 딥러닝을 적용하는데 너무 새로운 거를 하면은 이게 문제가 뭐냐면은 저도 사실은 원래는 제가 신호처리를 했기 때문에 메디카를 그렇게 많이 하진 않았거든요 보니까 딥러닝 프레임워크를 너무 바꾸면은 내가 딥러닝 프레임워크를 바꿔서 이런 진단 결과가 나온 건지 아니면 데이터의 특성 때문에 이런 진단 결과가 나오는지 알기가 참 힘들거든요 그래서 가능하면 좀 검증이 됐고 솔루션 중에서도 그래도 한 나와서 이미 다른 사람들이 많이 좀 리뷰한 한 3개월 6개월 지난 그런 최소한 그런 알고리즘 들을 이제 쓰는 게 맞다는 걸 제가 많이 느꼈어요 그래서 제가 했던 거는 이제 그 암을 진단하는 분야인데요 암 진단이라는 게 이제 그 지금까지는 이제 물론 아직도 여전히입니다. 이건 미래를 위해서 연구하는 거니까 사람에 의해서 진단을 하는 게 맞는데 이제 우리가 더 걱정하는 것은 암이라는 게 늦게 발견하면 안 되잖아요. 늦게 발견하면 수술을 한다고 해도 상당히 많은 부분에 피해가 극하기 때문에 그 이유가 이제 삶의 질이 많이 떨어질 수 있고 또 위험해질 수도 있거든요 그래서 가능하면은 앞선 상황에서 이제 발견을 해야 되는데 그렇게 하다 보면 이제 가장 좀 그 빨리 발견할 수 있는 부분은 아무래도 혈액이라든지 아니면은 그 일부만 이제 이렇게 채취를 해서 바이옵시를 해서 테스트하는 그런 것들이 이제 좀 좋은 방법인데 그거를 사람이 하기에는 힘들다는 거죠. 왜냐하면 이제 어느 정도 이 튜모가 커져서 사람 눈으로 육안으로 구분될 때는 사람이 잘 할 수 있는데 이제 이게 세포 단위로 완전 세포는 아니겠지만 아주 작아져서 조기암 같은 경우, 조기암은 이렇게 또 생체 내에서 좀 번져 있을 거잖아요 왜냐하면 분자 자체가 작으니까 그러니까 그거를 다 사람 눈으로 하나씩 찍어가면서 볼 수가 없다는 거죠 물론 현미경을 가지고 아주 오랜 기간 동안 한두 달 이렇게 모니터링 하면 되겠지만 그러면 비용도 많이 들고 그러다보면 이제 시간을 놓쳐서 투모 레벨까지 자라고 나면 그 다음부터 수술을 들어가던지 아니면 이제 그 케모세라피를 통해서 치료를 해야 되는데 그러면은 힘드니까 그래서 그거를 한계를 극보하는게 이제 그 사람 정도의 식별능력을 갖고 있으면서도 조기에 빠르게 그런 아주 작은 부분에 있어서도 할 수 있는 그런 인공지능 진단기술 그게 이제 필요하거든요 그래서 그거를 딥러닝으로 사용하는 건데 사실 처음에는 제가 이제 처음 시작할 때는 상당히 고난이의 딥러닝 기술이 필요한다고 생각했어요 왜냐하면 이게 어찌 보면 자의적인데 제가 신호처리 딥러닝 이런걸 연구를 했으니까 여기에서 상당히 실력을 많이 높이면 지금 우리가 하는 챌린지가 가능하다고 생각했는데 그래서 사실 그쪽에 시간을 많이 투자했거든요 근데 나중에 보니까 그 딥러닝 기술을 아주 새로운걸 가져가기보다는 있는 딥러닝, 아주 검증된 딥러닝을 여하이 그 진단 쪽에 어떻게 적용하는지 그게 더 중요하더라고요 그래서 이제 그런 입장이라면 Keras를 쓰는 게 더 맞다 그래서 이제 그 관련된 팀원들 MIT 연구원들도 있었는데 MIT 연구원들도 다 Keras로 하고 하바드 팀도 다 Keras로 했거든요 왜냐면 이게 컴퓨터 사이언스 하는 쪽은 아마 텐스플로도 하고 했을 것 같아요 바이토치도 하고 이제 메디칼에 적용하는 부분에 있어서는 뭐 딥러닝 기술을 바꾸고 하는 게 아니니까 그래서 Keras를 이용한 조기 암진단 그걸 제가 했습니다
아 네 되게 재미있는 프로젝트인 것 같은데 암진단이라면 그러면 데이터는 어떻게 모으는지 저는 사실 되게 어려운 문제인 게 데이터가 사실은 암이 어떤 뭐 CT나 아니면 MRI를 보고 이제 이게 암이다 아니다 이걸 진단을 하는 게 실제 전문가들이 해야 되는 거고 데이터를 모으는 게 참 어 비용도 많이 들고 굉장히 오류 가능성도 많을 것 같고 하는데 그 부분에 대해서는 어떠셨는지 좀 궁금하네요
네 그래서 그 스탠포드하고 그때 했던 방식은 이제 그 이스트코스트에는 이제 하바드 메디칼이 있고 웨스트코스트에는 스탠포드가 있고 뭐 이런 거잖아 지금 이제 스탠포드는 주로 한게 이제 컴퓨터 쪽에 성능을 많이 올려서 하는 투모 레벨을 그 바로 사진을 찍어서 하는 그거를 좀 많이 했던 것 같아요 너무 그래서 네이처에 그때 나왔고 우리도 스타디를 했는데 이쪽에 웨스트에서는 아무래도 좀 사이언스가 강하다 보니까 그 일종의 약간의 그 이제 케미칼적인 특성 우리는 이제 그걸 이제 안티바디라고 하는데 그런 것들의 기술을 써서 그 다음에 그거에 반응을 우리가 데이터로 모으거든요 그래서 그런 차이가 있는데 역시 말씀하신 대로 데이터가 상당히 힘들죠 만들기가 연구레벨에서는 지금 어느정도 가능하지만 진단 레벨까지 가려고 하면 실제 이제 그거를 적용하려면 아직도 좀 데이터 이슈도 있고 그 다음에 실제로 많이 해봐야 되잖아요 임상문제도 있고 좀 더 미래적인 부분이고 데이터는 여전히 항상 어려울 것 같아요
데이터를 모으는게 사람이 육안으로 보고 진단을 하는게 아니라 어떤 케미컬에 대한 리액션을 보고 암의 반응이랑 암이 아닌 경우의 반응이 다르기 때문에 그런식으로 그래도 이제 조금 자동화된 방법이 있는거네요 어느정도는?
그렇죠, 어느정도 있는데 그렇다고 100% 그것만 갖고 하는게 아니고 사람이 좀 같이 인발부를 해야되는 그런겁니다
네, 말씀하신 것 중에서 기술을 너무 집착을 해서 새로운걸 쓰려고 하지 않고 잘 검증된 그런 프레임워크나 기술을 쓰는 게 오히려 더 좋은 것 같다 네, 그건 저도 공감을 하고요 테리님도 그 메디컬 쪽에서 네, 메디컬 쪽에서 네 네, 그래서 데이터 예전에... 이런 얘기 하기 전에 먼저 얘기를 해야지. 테리님도 예전에 파킨슨 병인지 아닌지 이걸 갖다가 환자의 어떤 데이터를 가지고 진단하는 걸 했던 것 같은데 비슷한 문제가 있나요?
지금 여러 가지 얘기를 하는데 Keras냐 TensorFlow냐 기본적인 모델을 쓰느냐 어드밴스된 모델을 쓰느냐 이런 것들을 하는데 어쩔 수 없이 딥러닝이 들어가기 시작하면 블랙박스에 기대는 면이 없지 않아 있잖아요 그런 것과는 또 별개로 메디컬 쪽에서는 굉장히 한 단계 한 단계의 진단이라든지 해석이라든지 넘어가는 데 있어서 투명하게 이해하는 걸 굉장히 중요시한다고요. 또 그런 면에 있어서는 굉장히 복잡한 모델을 쓰는 건 좀 더 꺼려지고요. 그렇기 때문에 저는 그냥 딥러닝이라는 툴을 메디컬에 적용을 하는 것을 하나의 뭐랄까 질문을 던진다고 생각하거든요 데이터에 대해서 질문을 던지고 답을 받고 그래서 답이 만약에 내가 예상한 대로면 내 가설이 맞는 거고 근데 또 이상하게 나오면 또 다른 가설이 필요한 거 그런 식으로 가설 검증하고 확인하고 이런 식으로 할 때 딥러닝들을 점점 써나가는 거라서 그래서 저는 아마도 좀 단순한 모델부터 시작을 하기 때문에 그렇게 복잡한 모델이 필요 없었던 것 같아요
그때 테리님 쓰신 논문인가 한번 올려주셨는데 그때 보니까 그 오규멘테이션을 많이 하셨잖아요 이미지 오규멘테이션을 네네 그거를 했을 때 실제로 효과가 많이 있었나요? 왜냐면 의료나 이런 쪽에는 데이터를 많이 구하기 힘드니까 아무래도 그런 테크닉이 필요한 것 같아요
데이터 어그멘테이션이라는 것은 예를 들면 고양이, 개 이런게 있을 때 세상에 있는 종류의 모든 고양이를 다 학습을 하고 싶잖아요 그래야지 예외 없이 특이한 고양이가 나와도 맞출 수가 있을텐데 데이터가 많으면 많으면 좋을텐데 예를 들어서 고양이가 있다고 해서 모든 각도로 찍을 수는 없으니까 예를 들자면 인위적으로 각도도 틀어보고 확대도 해보고 하는 식으로 해서 하나의 데이터를 가지고 데이터를 불리는 거죠 그렇게 해서 최대한 unseen을 없도록 만드는 게 데이터 Augmentation인데 기본적으로 이제 러닝을 한다는 것 자체에 클래스피케이션을 한다는 것 자체가 무엇이 키 컴포넌트고 그러니까 어떤 걸 distinguish 어떤 걸 구분을 하는데 무엇이 키 피처고 무엇이 중요하지 않은 피처인가를 잡아내는 게 결국은 문제거든요 근데 그렇다는 거는 그렇다는 거는 뭔가 invariance한 피처를 찾아야 돼요 그러니까 어떤 사소하고 잡다한 것들 말고 진짜 무엇이 핵심이냐 암을 나타낸다는 것은 무엇이냐? 그 핵심을 다가가야 하는데 그 다가갈 때 방법이 뭐냐면 딥러닝 같은 경우에는 많은, 그러니까 같은 클래스 내에서 많은 베리에이션들을 보여줌으로써 아 이런 것들, 이런 노이즈들, 이런 확대, 로테이션 이런거 별로 안 중요해 라는 것들을 이제 알려주는 거죠 이렇게 알려주는 것들이 이제 데이터 어그멘테이션 인데요 결국은 그런거에요 결국은 이제 저희가 학습을 한다는 것 자체가 Unseen에 대해서 정확한 대답을 내놓고 싶고 Unseen은 분명히 내가 있던 트레이닝 데이터는 뭔가 다를텐데 그렇다면 트레이닝 데이터로부터 어떻게 하면 좀 더 가깝게 그곳에 접근할 수 있을까 거기에서 가장 간단한 방법은 데이터 고멘테이션처럼 데이터의 양을 불려서 부피를 늘리는 거고 다른 방법은 트랜스포를 할 수도 있고 혹은 어떤 인베리언스를 찾는 특이한 스트럭셔를 만들 수도 있고 그런 시도들을 하는 거죠 근데 결코 이런 것들이 자동으로 그냥 딥러닝을 넣는다고 인베리언트한 피처가 찾아지고 이렇지도 않아요
최근에 기사들 보니까 그런 이야기를 하더라구요 딥러닝은 CNN 하면서 피처를 자동으로 찾는다라고 광고를 했는데 네이처도 그렇게 나왔는데 실제로 딥러닝이라 하더라도 어플리케이션 따라서 피처 엔지닝에 못지않는 프리프로세싱이 필요하다 그런 이야기를 하더라구요 그게 맞는 이야기인가요?
피처에서 혁명적인 것은 그런거죠 러너블 피처라는거죠 옛날에는 핸드크래프트 피처여서 정했었는데 시프트면 시프트고 피처를 딱 정해놨었는데 그게 러너블이기 때문에 데이터가 많으면 조금 더 나은 쪽으로 좀 더 발전된 방향의 피쳐를 찾는다 이거는 확실한 건데 그렇다고 해가지고 이것이 무슨 모든 거 깡그리무시하고 최고의 피쳐를 찾는 건 아니거든요 컨볼루션 같은 경우는 당연히 로컬한 지역에 있는 그런 스페이셜한 피쳐를 기본으로 하고 있고 또 그 기본으로 하는 컨볼루션 오퍼레이션 자체가 웨이티드 썸의 형태고 이런 것들이 구속되어 가지고 분명히 이 피쳐들을 조작을 하긴 하는데 로컬하게 조작을 하긴 하는데 그래서 성능이 좋게끔 만들긴 하는데 그렇다고 해서 딱 매직처럼 정답을 내놓는 건 아니라는 거죠 음 그래서 뭐 컨볼루셔널 뉴레터 기능이 꼭 모든 데이터 형태나 이런 거에 대해서 모든 정답을 내주지 않습니다 때로는 예를 들면은 뭐 첫 번째 위치한 거랑 마지막 거랑 굉장히 동시에 봐야 된다라고 했을 때는 컨볼루셔널 뉴레터 기능이 굉장히 안 좋죠 이럴 땐 뭔가 다른 구조가 필요하겠죠
그러니까 그걸 요즘 최근에 캡슐렛이 나왔는데 성능은 그렇게 뛰어나진 않잖아요. 그런데 로컬한 특성이 아니고 글로벌한 특성까지 볼 때는 캡슐렛이 CNN보다 좋다 뭐 이런 이야기를 하는데 메디칼에서는 아마 그런 게 필요할 것 같거든요 왜냐하면 개고양이 구분이야 그 어떤 전체 형질에서 개하고 고양이가 구분되는 거잖아요 그런데 똑같은 이런 생체에서 아니다 아니다 하는 것은 로컬 글로벌 특성이 같이 반영될 것 같거든요
제가 생각하기에도 분명히 컨볼루션 뉴럴렛이 나온 이유 자체가 이런 거였잖아요 엣지가 한쪽에서 발견되면 다른 쪽에서도 엣지를 디텍션을 해야 되고 그렇기 때문에 결국은 share to weight 거든요 그래서 weight을 모두가 share 할 수 있다 부분적으로 찾은 피처가 이미지 전체에 적용 가능하다 이게 기본적인 필라소피니까요 근데 과연 이 필라소피가 다른 문제에도 적용이 되느냐 음성에도 적용이 되느냐 어 근데 지금까지 이제 성능을 보면은 그것이 꼭 이게 잘 적용이 돼서 된다기 보다는 그냥 런어블 피처이기 때문에 핸드크래프트 피처를 압도한다 뭐 이정도지 꼭 그 구조가 그 문제를 해결하는 데 있어서 완벽한 구조라고는 생각을 하지
않아요 데이터를 정리를 많이 해야 된다는 얘기가 나와가지고 저도 이제 되게 이것저것 많이 해보려고 많이 하다가 하면서 이것저것 많이 시도를 했는데 다 그 이유 때문은 아니지만 상당히 많은 수가 데이터를 수집하거나 정리하는 것을 못해서 그런건데 테리님 말씀하신 것을 듣고 일반 사람들한테 말씀을 드리자면 사실 이 사람이 누구인지를 디텍팅하는 모델을 만들어야 된다 그러면 이 사람의 사진을 전부 모으는 것 더하기 얼굴만 정확하게 잘라가지고
학습을
시켜야 이 사람은 이제 학습이 잘 되기 때문에 그 작업을 또 해야 된단 말이죠 그러려면 또 얼굴을 인식하는 모델을 또 만들거나 써야 되고 얼굴을 인식하는 모델을 만들려면 얼굴을 학습을 시켜야 되니까 이런 루프가 막 도는 거예요 이런 부분이 사실 아직까지 굉장히 어려운 부분인 것 같고 딥러닝 모델을 만드는 것은 연구하시는 분들이 훨씬 어렵게 하지만 저같이 사용하는 입장에서 봤을 때는 모델 만드는 것은 정말 일도 아닌 것 같아요 오히려 이 앞단에 이제 데이터를 정리하는 거랑 그 다음에 뒤에서 이제 뭔가 나왔을 때 그걸 가지고 다시 뭔가를 하는 일을 그 일이 훨씬 더 많아서 진짜 데이터 하는 것들을 좀 잘 연구하거나 그렇게 하는 딥러닝 하시는 분들도 이게 이런 부분에 대해서 더 연구가 되면 좀 더 좋은 모델이 나오지 않을까라는 생각을 최근에 좀 해보고 있습니다 되게 어려운 문제인 것 같아요
네 그 말씀하신 데이터 부분은 정말 저도 이제 항상 그 딥러닝이 반 이상은 데이터다 저도 이제 그런 말씀을 자주 드리는데 그래도 보니까 그 프레임워크 단에서 많이 지원을 하는 것 같더라구요 이미지 아귀멘테이션 같은 경우에도 제가 보니까 파이톨치였던 것 같은데 함수가 다 있고 그래서 그냥 인풋 이미지를 해서 자동으로 이제 뭔가 그런 그 베리에이션을 만들어주는 그런 그런 식으로 이제 프레임워크에서 조금 더 이제 지원을 또 하는
것 같고 그 정도 베리에이션은 이제 사실 아귀멘테이션을 한다라고 할 수 있을까라는 수준이기는 하거든요 크기를 줄이거나 앞뒤를 양옆을 뒤집거나 이정도 수준이니까 근데 아까 성진님처럼 의료에서 쓴다 그러면 이게 과연 앞뒤를 뒤집는게 맞는건 안맞는걸수도 있잖아요 얼굴같은거야 그래 이거 거울로 볼수도 있으니까 이렇게 생각하고 할 수 있지만 아닐수도 있으니까 이런 부분은 고민이 되게 많이 필요한거 같아요
네 그런 부분은 당분간 오토매틱 ML로 좀 힘들지 않을까요?
근데 저런 것도 생각해야 되잖아요 테리님 옛날에도 한번 제가 봤는데 동작을 딥러닝으로 검출한다는 그런 걸 제가 봤었거든요 근데 그것이 동작이라는 거는 좀 자유도가 많아서 원하는 동작은 있지만 방법이 다르잖아요 개고양이 구분하는 건 그래도 좀 어느 정도 볼 수 있는데 도는 예를 들면 떨어진 동전을 줍는 행동인데 이렇게 오른쪽으로 돌아서 줄 수도 있고 왼쪽으로 줄 수도 있고 사람마다 다를 텐데 그런 것까지 이렇게 앞으로 하려면 뒷런닝이 앞으로 가야 될 길이 좀 멀지 않나 그런 생각이 좀 들더라고요
지금까지는 거의 딥러닝이 잘된다는 것은 거의 언승이 없을 정도로 데이터를 많이 컬렉션을 하고 그리고 이제 새로운 인풋 데이터 역시도 그러한 카테고리, 그러한 이제까지 커버됐던 데이터 영역에서 크게 벗어나지 않는 이미지를 주었을 때 잘된다는 거거든요 이미지 넷에서 인간을 압도했다는 것도 사실은 굉장히 이미지들 별로 크롭이 잘 된 얼굴이라고 하면 얼굴만 잘 잘려진 이런 걸 넣었을 때 잘 되는 거고 근데 사실 인간사는 불확실성도 많고 베리에이션도 많고 그렇기 때문에 그렇게 모든 가능성들을 다 보여주는 게 쉽지가 않거든요 가능성을 다 보여준다고 해도 카메라의 관점이라든지에 따라서 분명히 달라지고요 그렇기 때문에 그 알고리즘적인 방법으로 인베리언스를 찾는 것을 계속 연구해 나가지 않는 한 지금처럼 그냥 단순하게 데이터를 많이 때려 넣어서 패턴을 찾고 거기서 더 좋은 결과를 자동으로 내주길 기대하는 것은 조금 어려운 것 같아요 그래가지고는 인공지능의 시대는 오지 않을 것 같아요
그 데이터 지금 한때는 데이터가 워낙 부족했기 때문에 많아진 데이터를 어떻게 할까 해서 데이터를 많이 넣으면 스스로 피쳐도 찾고 했지만 앞으로의 고민해야 될 것은 이 많은 데이터를 그냥 그냥 순진하게 넣어가지고 잘 될 수 있을 거냐 그거는 진짜 그 앞으로 고민거리가 저도 그렇게 생각이 되거든요
데이터가 진짜 많아서 빅데이터 시대인 줄 알았더니 알고 보니 별로 없었어 뭐 약간 이런 느낌이죠
지금 있는 데이터 가지고는 택도 없는, 개고양이 구분이 있는 C파 이런 건 되는데 동작을 한다 그러면 그 많은 동작을 아무리 많이 해도 빅빅빅 데이터를 해도 부족할 거 아니에요.
그걸 다 이해시키려면 그래서 뭐 원샷 러닝이나 이런 것도 나오고 있고 강화학스 뭐 이런 거 나오고 있는 거겠죠 연구자들의 힘을 믿습니다
네 그래서 오늘 시간이 1시간 반을 넘어서 1시간 40분 그래서 딥러닝 프레임업부터 딥러닝 활용까지 많은 말씀을 나눠봤는데요 오늘 아무래도 딥러닝을 가지고 뭔가 해보고 싶은 분들을 위한 그런 방송이기 때문에 마무리하기 전에 딥러닝 공부를 하시는 분 입장에서 공부를 더 많이 하시는 분 입장에서 시작하는 분들한테 이런 거는 조금 이런 자료나 아니면 이런 방식이 어떨까 뭐 그런 생각이 있으시면 한마디씩 해주실 수 있을까요?
Keras 입장에서 말씀드리면 지금까지 다 말씀드렸는데 뭐를 연구하느냐에 따라 조금 다를 것 같아요 그래서 인공지능을 응용하는 것을 합니다 앞으로 우리가 많이 컴퓨터 사이언스가 아닌 쪽도 데이터 사이언스 입장에서 자신이 갖고 있는 데이터를 분석하고 활용할 때가 많을 텐데 그런 입장에서는 인공지능 알고리즘을 개발한다기 보다는 나와 있는 알고리즘을 여하위 잘 이용해서 가지고 있는 데이터를 분석하고 처리할 텐데 이를 그러면은 물론 딥러닝을 다 배우고 할 수도 있지만 좀 딥러닝을 배우는 시간도 만만치 않으니까 그 시간을 조금으로 줄이고 좀 작게 줄이고 상대적으로 대신에 본인이 가지고 있는 데이터를 이렇게 돌려보고 활용하고 그 경험을 늘리는 컴퓨터 사이언스 보다는 데이터 사이언스 입장에서 인공지능을 활용하기 위해서는 물론 여러가지 툴들이 많이 나오고 있지만 그래도 Keras가 많이 도움이 되지 않을까 생각하거든요 그런 입장에서 제가 이제 그런 것들을 보스톤에서 아바드에 입구하면서 경험했던 것을 여기다가 이제 그 메뉴를 개념으로 쭉 적어놨으니까 한번씩 따라해보시고 그렇게 하면은 내 분야가 딥러닝하고 자기 책용이 잘 안될 것 같다고 생각했던 분야도 생각보다도 딥러닝에 의한 효과를 보게 될 수 있지 않을까 저는 그렇게 생각합니다
저는 야 너 아니야 저는 일단 3번입니다. 시리즈니까 책 한 권 사시면 다 사시는 게 좋을 거고요 일단 저는 뭐 일단 개인적으로는 처음 시작하시는 분들은 텐터플로우를 시작하는 게 조금 이제 개념을 아주 기초적인 개념까지 익히기에 좋다고 생각을 하기 때문에 추천드리기는 하고 기초는 이렇게 공부를 하고 그 다음에는 사실 요즘에는 워낙 자료들이 많이 있어서 원하는 분야가 있으면 그 분야 찾아보시면 될 것 같고 보통 어려울 거라고 생각해서 접근 못하시는 분들이 많기는 한데 어렵긴 어렵죠 되게 깊게 들어가면 어렵긴 한데 기본적으로 아주 단순한 모델이나 그런 것들 만드는 거는 어렵지 않기 때문에 한번 시도해보셔도 좋을 것 같고 제가 생각하기에는 사실 딥러닝 이 개념을 익히거나 프로그래밍 하는 것보다는 오히려 도메인 지식을 어떻게 적용할까에 대한 고민을 더 많이 하는게 중요한 거라서 도메인 전문가 분들은 한번 해보셔도 해보시면 굉장히 큰 도움이 되지 않을까 생각이 듭니다
저도 기대하고 있는 건가요? 저 말이 안 나와요?
당연하죠.
여러분, Keras, TensorFlow 말고 PyTorch 쓰세요.
끝났습니다.
PyTorch 좋아요.
조만간 PyTorch 관련 서적이 쏟아지지 않을까. 아무튼 뭐, 태리님 마친 거요?
네, 없습니다. 할 말 없습니다.
네, 아무튼 오늘도 딥러닝 시리즈라면 시리즈의 두 번째 시간으로 딥러닝 프레임워크 책 저자분들을 모시고 말씀을 나눠봤는데요. 아마 느끼셨겠지만 기술도 중요하지만 딥러닝은 정말 첨단 기술이고 기술로서 가치도 있고 재미도 있고 하지만 내가 이 기술을 어떤 목적에 쓸 것이냐 그리고 이제 그 기술을 제대로 쓰기 위해 알아야 될 게 무엇이냐 이제 그런 거를 좀 더 고민을 해보시면 딥러닝으로 뭔가 결과를 얻으시는데 좀 도움이 되지 않을까 생각을 저도 해보고요 네, 어쨌든 마무리로 저희가 이 방송은 이제 한빈 미디어에서 호환을 해주고 계신데 공교롭게도 오늘 출연하신 두 분 다 한빈 미디어에서 출판된 3분 딥러닝 캐라스만 그리고 3분 딥러닝 텐서플로만 저자시고요 저도 책을 읽어봤는데 상당히 각 프레임 언어에 대해서 개념을 잡고 아 이렇게 돌아가는구나 그런거를 이해하기 굉장히 좋은 책들이라서 꼭 보시라고 말씀을 드리고 싶구요 어 그리고 이제 어 머신러닝 관련된 책이 또 여러가지가 나오고 있는데 한빛미디어에서 강화학습 첫걸음이라는 책도 최근에 나왔는데 이것도 보니까 텐서플로우로 만들어졌는데 강화학습 알고리즘을 텐서플로우로 구현해보고 싶으신 분들이 보시면은 좋지 않을까 생각이 듭니다 네 어쨌든 뭐 어 이제 예 오늘 이제 방송 좀 정리할 시간이 된 것 같은데 어 네 성주님 또 뭐 마지막으로 뭔가 청취자 분들에게 한 말씀씩 해주시고 네 마무리를 하죠
예 뭐 일단 리얼타임으로 들으시는 분도 계실 거고 그 다음에 또 나중에 이제 방송 올리면 들으실 분도 계실 건데 어쨌든 조금 약간 여러가지 이야기가 나왔는데 쭉 들어주셔서 감사드리고요 그리고 방송을 또 만들어주시고 리드해주신 두 분께도 감사드리고 그 다음에 텐스플로우 맛을 써서 3분 딥러닝 시리즈를 열어주신 분에게도 감사드립니다 어쨌든 딥러닝 시작하시는 분들이 편하게 그리고 국내에 또 저변이 확대돼서 인공지능 기술력이 많이 높아졌으면 좋겠습니다 예 감사합니다
저인가요?
네 재미있으니까
한번씩 꼭 해보시길 바라고요 저희 네이버 클로우가에서 무제한 채용을 하고 있으니 관심 많이 가지세요 꼭 말하라고 하더라고요 잘 부탁드리겠습니다
또 전가요? 저 계속 기대하시는 거예요? 여러분들 다들 요즘에 감기가 많이 힘들더라고요. 그러니까 감기 다들 조심하시고요. 딥러닝, 프레임워크 어떤 거든 사용하셔도 좋습니다. 일단 뭐라도 하시면 되고요. 테리의 딥러닝톡 유튜브에 있습니다. 여러분 그것도 참고해 주시기 바랍니다.
감사합니다.
파이톨치랑 텐서플로 비교해놓은 것도 있더라고요 꼭 한번 보시고요 어쨌든 테리님도 지금 캐나다 시간으로 새벽 1시 반 만에 달리고 있는데 늦은 시간까지 수고 많으셨고 두 분 또 휴일에 소중한 시간 내주셔서 감사드리고요 네 어쨌든 이번 방송이 딥러닝 관심 있으신 여러분들께 뭔가 시작하게 되는 용기를 주는 방송이 됐으면 하는 그런 바람으로 마쳐봅니다 네 그럼 뭐 수고 많으셨구요 다음 방송에서 뵙겠습니다
네 감사합니다
감사합니다










