후하하핫
5k
2021-10-10 11:28:17
18
1433

혹시 머신러닝이나 인공지능 관련해서 궁금하신게 있으신가요?


요새 머신러닝이나 인공지능 관련 커리어에 대해 관심이 많으신 것 같은데, 관련해서 정보가 충분치 않은 걸로 보이네요. 궁금하신 부분을 댓글로 써주시면 제가 아는 선에서 정보를 공유해 드리겠습니다.


(예시: 석박사 학위가 필요한가요? 지금 XX 인 상태인데 ML 쪽으로 어떻게 넘어갈 수 있을까요? ML은 이미 포화 아닌가요? 등등)


참고로 저는 학부 때 CS/수학 전공하고 머신러닝 대학원에 진학했고, 지금은 학위 이후에 기업에서 ML 엔지니어와 리서처 중간 쯤의 포지션에서 일하고 있습니다. 학부 때는 모 기업에서 Data Engineering 인턴으로 일했었고, 학위 동안에는 흔히 말하는 빅테크에서 ML을 연구하는 포지션에서 인턴십을 수행했습니다.

2
  • 댓글 18

  • 하하121
    590
    2021-10-10 11:48:50

    Data Engineering 인턴 썰 좀 풀어주실 수 있나요? 

  • 후하하핫
    5k
    2021-10-10 11:55:47

    @하하121 첫 댓글 감사합니다 ㅎㅎ


    Data Engineering 인턴에서 제 미션은 서비스에서 발생하는 로그들을 분석하는 고성능 배치 처리를 쉽게 만들기 위한 일종의 프레임워크를 만드는 것이었습니다. Apache Spark 와 같은 Hadoop ecosystem 컴포넌트들로 요구된 통계를 빠른 시간 안에 뽑아야 했어요. 그래서 인덱스 만들고 replication 해서 계산량 줄이고 하고 했었죠.


    원하시는 내용이 맞는지 모르겠네요 ㅎㅎ 혹시 궁금하신 부분 있으시면 말씀 주세요.

  • 하하121
    590
    2021-10-10 11:58:28

    들어갈 전에 이미 저 스택들을 익힌 상태였나요? 언어는 주로 뭐 쓰셨나요?

  • 후하하핫
    5k
    2021-10-10 12:06:24

    @하하121 저는 Scala 는 할 줄 아는 상황이었고, Spark은 들어가서 공부했습니다. Hadoop 에 대한 기본적인 지식들은 갖고 있긴 했습니다. 요새는 어떨지 모르겠지만, 얘길 들어보니 Python과 Go 를 잘하면 좋아하는 것 같긴 하더라고요. (Kubernates 등 containerized resource를 관리해야 할 일이 많다보니...)

  • covy
    15
    2021-10-10 12:08:27 작성 2021-10-10 12:08:58 수정됨

    제 글에 써주신 댓글 잘 읽었습니다. 글에서 느끼셨을 불쾌함을 본의아니게 드린 점 죄송하다 말씀드리며 조언도 감사드립니다. 

    별개로 질문 하나만 드리겠습니다 만약 웹개발을 베이스로 시작하여 머신러닝은 라이브러리 접목시키는 정도만의 수준이 필요하다면 추천해주실 학습루트가 있으실까요?? 현재 염두하고 있는것은 그래픽스 쪽이나 음성구현 정도이며... 시중(패스트X퍼스) 같은 사설 강의와 코세라 머신러닝 강의 듣는 정도일 뿐입니다.. 학습법을 찾아보면 이쪽은 죄다 석박사 석박사 얘기하고 정보도 많이 부족하여 진지하게 학업을 깊게 파야하나 고민하고 있는데 사실 그거야말로 현실적으로 무모한 것은 인지하고 있어서요.

  • 하하121
    590
    2021-10-10 12:13:23

    답변 감사합니다

  • FLUKOT
    77
    2021-10-10 12:13:29

    물체 인식? 관련 관심이 많은데 추천 하시는 인강이나 책 있을까요?

  • 후하하핫
    5k
    2021-10-10 12:20:32

    @covy 저는 불쾌함은 없었습니다 ㅎㅎ 오히려 걱정이 되었어요. 제가 생각한거랑은 다른 상황이어서 다행입니다.


    질문에 답을 드리자면, 라이브러리를 사용하는 수준에서는 그렇게 난이도가 있진 않습니다. 오히려 말씀하신 강의나 코세라 머신러닝은 기초 중에 기초를 다지시느라 재미가 없으실거고, 저라면 Keras 라이브러리의 튜토리얼을 따라 해볼 것 같습니다. https://keras.io/getting_started/intro_to_keras_for_engineers/ 요런 것들이요.


    웹에 적용하는건 pretrained model을 갖고 Tensorflow.js 같은걸 먼저 한번 써보시면 어떨까 싶네요. https://www.tensorflow.org/js/tutorials


    사실 ML을 이론으로 파자면 끝도 없지만 갖다 쓰는건 너무나도 쉽습니다. 입력하는 정보를 tensor 형태로 바꿔주고, 출력을 받는 것 뿐이죠. 다만 자신이 원하는 문제로 확장할 때는 난이도가 올라가는데, 문제의 입출력은 비슷하지만 풀고 싶은 영역의 문제만 바뀌는 수준이라면 조금만 파면 되지만 (예: 개 품종 분류하기를 고양이 품종 분류하기로 변경), 입출력이 달라지면 결과의 퀄리티가 달라질 수 있습니다. (예: 개 품종 분류기의 정확도가 97%였는데 손 동작 분류기로 바꾸니 정확도 70%) 이렇게 되면 풀어야 하는 문제가 빡세지죠.


    더 공부를 하고 싶으신 분들께 제가 추천드리는건 문제를 하나 확실히 정하는겁니다. 음성이면 음성, 이미지면 이미지를 정하고, 그 안에서도 분류 문제를 풀건지, 예측 문제를 풀건지 등등 풀고 싶은 문제를 확실히 정한 후에 그걸 하기 위한 공부를 하시는겁니다. 공부를 하시면서 모르는게 많이 나오실텐데, 일단은 돌아가게 만들자, 정도의 목표를 갖고요.


    도움이 되었으면 좋겠네요.

  • 후하하핫
    5k
    2021-10-10 12:26:00

    @FLUKOT


    물체 인식의 수준이 어느정도를 원하시는 건지 확실치는 않은데, 예를 들어서  YOLO 나 SSD 같은 알고리즘으로 아래와 같은 문제를 풀고 싶으신거라고 가정하겠습니다.

    Object recognition using BiGG and VFH within our ReIn infrastructure. |  Download Scientific Diagram


    이것 역시 어느정도 수준으로 하고 싶으신지가 중요한데, 저라면 먼저 구글에 object recognition github 정도로 검색을 해 돌아가는 소스코드를 먼저 찾아 볼 것 같습니다. 대략 제 경우에는 이런 리포가 나오네요: https://github.com/sgrvinod/a-PyTorch-Tutorial-to-Object-Detection


    그러면 저 리포 들어가서 소스코드를 돌려 보시고, 자기가 풀고 싶은 문제로 어떻게 바꿀 수 있는지를 코드 상에서 바꿔볼 수 있을 것 같습니다. 쌈마이이긴 한데, 이게 젤 재밌게 공부할 수 있는 방법이구요.


    만약에 제대로 공부를 해보고 싶으시다고 하면 Computer vision 관련 수업을 들으시면 좋은데, Stanford의 cs231n 이 가장 많이 추천하는 computer vision 수업입니다. 슬라이드도 잘 되어 있고, 옛날 강의들은 유튜브 가면 한글 자막도 달려 있을거라, 여기서 나온 것들 하나씩 따라해 보면서 기초를 배우셔도 될 것 같네요.

  • 후하하핫
    5k
    2021-10-10 12:28:33 작성 2021-10-10 12:31:09 수정됨

    @FLUKOT 참고로 책은 전북대 오일석 교수님 책들이 좋습니다.


    컴퓨터 비전: https://book.naver.com/bookdb/book_detail.naver?bid=7973898


    가장 많이 보는 책 중에 하나는 패턴인식 책인데요, 기초를 다지고 싶으시다면 역시 추천합니다... 하고 찾아보니 기계학습 책으로 가시고 패턴인식 책은 절판된 것 같네요. 이 책을 보진 않았는데, 패턴인식 책을 계승하는 책이라면 충분히 좋은 책일 것으로 예상합니다.


    기계학습: https://book.naver.com/bookdb/book_detail.naver?bid=12873234


    영어가 되신다면 단연 Murphy 책이 탁월합니다. 우스갯소리로 군대 끌려가게 되면 Murphy 책 제본해서 그것만 읽고 오라고 얘기하기도 해요 ㅎㅎ


    https://probml.github.io/pml-book/

  • covy
    15
    2021-10-10 12:31:09

    후하하핫  

    너무나도 감사합니다. 

    당연히 제 의지와 노력으로 다듬어가는게 제일 중요하겠지만 가이드도 없이 무작정 길을 걷는거랑 그래도 네비게이션키고 시작하는거랑은 전혀 다르다 생각하는데, 덕분에 막연하게 덮혀있던 안개가 어느정도 걷힌 기분입니다.

    오키를 알게된게 다행이네요

    그리고 이런 조언을 주실 분이 계신건 정말 행운이네요

    진심으로 감사합니다

  • FLUKOT
    77
    2021-10-10 14:48:30

    후하하핫

    답변 감사합니다

    책 사서 공부 해봐야 겠네요

  • 오키깡
    188
    2021-10-13 17:16:04 작성 2021-10-13 17:16:37 수정됨

    웹 개발 9년차인데 전직을 하려고 알아보니

    대학원관련 이야기를 많이 접하게 되는데요

    나이가 34살인데 데이터분석가나 관련직군으로

    넘어갈 수 있는 루트는 어떤게 있을까요?

    대학원은 야간밖에 선택지가 없는것같고(국내기준)

    개발쪽보다는 진입장벽이 있는것 같습니다 

    야간대학원이 도움이 될 수 있을까요?

    조언부탁드려요

  • 후하하핫
    5k
    2021-10-13 17:51:43

    @오끼깡: 좋은 질문 감사합니다.

    1. 데이터 사이언티스트 vs 데이터 엔지니어

    데이터를 다루는 직군을 편의상 데이터 사이언티스트와 데이터 엔지니어로 나눌 수 있다면, 전자는 주어진 데이터를 분석해서 인사이트를 얻어내거나 인공지능 모델을 개발하는 역할을, 후자는 데이터 사이언티스트의 분석을 빠르게 하거나 데이터 수집 프로세스를 구축하는 업무를 합니다. (이 안에서도 세부적인 역할이 나뉘기도 하고, 양 역할을 7:3으로 나눠서 하는 식의 variant는 있지만, 크게는 이렇습니다.)

    2. 데이터 사이언티스트 -> 대학원

    보통은 데이터 사이언티스트가 될 것을 기대하고 대학원에 갑니다. 가설을 세우고, 모델을 만들어 가설을 검증하여 문제를 해결하는 데이터 사이언티스트의 프로세스가 대학원에서 배우는 연구 프로세스의 그것과 매우 비슷하기 떄문에, 대학원을 졸업하면 데이터 사이언티스트로 일할 떄 도움이 됩니다.

    하지만 야간대학원의 경우 (제가 아는게 맞다면) 연구를 수행하기 보단 수업을 듣는 것을 위주로 할텐데, 생각보다 대학원 수업이라는게 대단할게 없고 교수님들도 특수대학원 학생들은 고객으로 보지 동료 연구자로 여기진 않는 것 같습니다. 즉, 야간대학원에서의 경험은 아주 큰 도움이 될 것 같진 않습니다.

    3. 데이터 엔지니어

    보통 저는 개발자 출신들에게 데이터 엔지니어로 시작하는 것을 권합니다. 백엔드 개발을 잘하시는 분들이 이쪽으로 갈아타시는 경우가 많은 것 같은데요, 어떤걸 경험하고 준비해야 하는지는 회사들의 채용공고를 보시면 이해가 쉬우실 겁니다.

    또한 언급했듯 어떤 업무들에서는 데이터 사이언티스트 70% 데이터 엔지니어 30% 혹은 간단한 분석을 데이터 엔지니어가 하는 식으로 하는 경우도 있기 때문에, 현실적으로 개발자분들이 데이터 사이언티스트로 가는 좋은 다리가 될 수 있습니다.

    4. 아마추어 인공지능 엔지니어

    아시다시피 딥러닝이 많이 뜨고 있는데, 여긴 아직 연구 단계와 산업화 단계의 길목에 있습니다. 그렇기 때문에 오히려 아마추어로서 진입을 해볼 수 있는 여지도 있다고 생각합니다.

    어떻게 진입하냐...는 많은 길이 있겠지만, 제가 위에 적어 놓은 책들을 보고 공부하시면서 사이드 프로젝트를 해나가는 겁니다.

    나이브하게 말했지만 이 방법이 꽤 그럴듯한 이유는, 많은 인공지능 연구자들 (특히 탑티어로 갈수록) 손을 더럽히기 싫어합니다. 지저분한 데이터를 만지면서 뻔한 모델들을 만들다보면 (실제로는 갖다 쓰다보면) 논문도 못쓰고 연구자로서의 가치가 낮아진다고 믿는 사람들이 많기 때문입니다. (일정정도 사실이기도 하구요)

    하지만 실제 산업계에서는 일단 들어와서 인공지능으로 서비스를 만들고 돈을 벌게 해줄 사람들이 필요한데, 위와 같은 이유로 이런 사람들의 구인이 정말 어려운 상황입니다.

    즉, 추천드리는건 일단 취미로 위의 책이나 강의들로 공부하시면서 사이드 프로젝트를 해보시고, 기초적인 수학과 통계, 논문들도 (필요한 경우) 읽으면서 인공지능 기술을 잘 사용할 수 있게 되면 이쪽으로 넘어갈 수 있는 기회가 생길 수 있습니다. 마치 컴퓨터 그래픽스 박사들이 그래픽스는 더 잘 알지만 게임 개발자들이 실제 서비스에 적용할 수 있는 그래픽 효과들을 구현하는 것과 같은 것이라고 생각하시면 될 것 같습니다.

    글이 길었는데, 요약하자면,

    1) 대학원은 가성비가 안나올 것

    2) 사이드 프로젝트를 조져보면서 데이터 사이언스 혹은 인공지능을 공부해 볼 것

    3) 만약 백엔드 개발 및 서버 개발에 일가견이 있다면 데이터 엔지니어를 고려해 볼 것

    이렇게 얘기할 수 있겠네요.

    또 질문이 있으시면 남겨주세요~

  • 먹태
    5
    2021-10-13 23:02:27

    안녕하세요~ 저도 질문 드립니다

    1. 혹시 관련하여 어떤 자격증을 따면 좋을까요? 제가 알고있는것은 정보보안기사, 빅데이터 분석기사, ADP, DAP,  SQLP 등입니다. 중요도는 비슷비슷 한것 같습니다만 그래도 추천해주실 만한것이 있을지요? 혹은 다른 자격증이 있을까요?

    2. 위에서 사이드 프로젝트라고 하셨는데..대략 구직 시 어필하기 위한 프로젝트나 포폴이라면 어떤 식으로 만들어야 할까요? 초심자로서는 감이 잡히지 않습니다..^^; 아니면 학교나 대학원 이외에 나는 요렇게 공부를 하였다! 란 것을 어필하려면 어떻게 해야할까요?

    편안한 밤 되셔요~

  • sbroh
    11k
    2021-10-18 12:58:33

    후하하핫

    안녕하세요. OKKY 운영자인데요, 연락을 드리고 싶은데 가능할런지요?

    sbroh@okky.kr 앞으로 메일 주시거나 카카오톡 아이디: ebrainnetwork 앞으로 연락 주시면 감사하겠습니다. 

  • 후하하핫
    5k
    2021-10-18 13:48:41

    @sbroh: 관심 주셔서 감사합니다. 다만 제가 익명성 안에서 커뮤니티 활동을 하고 싶은지라, 혹시 익명으로 제가 참여할 수 있는 채널을 알려 주시면 연락 드리겠습니다.

  • OKKY
    3k
    2022-01-01 02:43:27
    해당 게시물은 관리자에 의해 사는얘기에서 칼럼로 이동 되었습니다.
  • 로그인을 하시면 댓글을 등록할 수 있습니다.