작성
·
1.1K
5
항상 친절한 답변해주셔서 감사합니다.
다름이 아니라 저는 비전공자에 이번년 4월부터 처음 컴퓨터쪽 공부를 접한 학생입니다.
처음에는 항상 웹,앱 은 어떻게 만들가 나도 만들수 있을까? 해서 인터넷에서 찾아보고 알아보던중 인공지능의
매력에 빠져서 공부하고 있습니다. 사실 저는 구현 후 눈에 실제로 나타나는게 잼있어 자연어쪽 처리보다는 컴퓨터 비젼쪽으로 진로를 정하고 싶어서 조언을 구하고자 질문을 남깁니다..! 현재까지 선생님 강의는 머신러닝 완벽가이드랑 지금 CNN을 듣는중이며 이번년6월에 운이좋게도 국비로 지원하는 인공지능 교육에 참여하여 6월 후반부터 딥러닝, 머신러닝을 들으며 공부 중입니다.(사실 머신러닝은 선생님 강의로 여기서 배우는 강의를 모두 선행학습하였고 딥러닝 파트는 tensorflow 안의 코드들을 하나하나 np로 구현 중이며, 데이터 분석으로는 빅데이터 강사님께서 통계와 실전 데이터 분석을 주로 알려주십니다.)
제가 목표하는 기업은 카카오 엔터프라이즈에 컴퓨터 비젼 파트입니다. 기업에 들어갈려면 컴퓨터 비젼의 역량이 어느 정도이며, 빡세게하면 얼마정도의 시간이 필요하며, 어떻게 최신기술들을 스스로 공부하는지 궁금해서 남깁니다 기업들을 찾다보니 최신 논문 이해도 적혀있는데 .. 구체적으로 어떤 사이트를 들어가서 어떤 식으로 공부해야 기업에서 원하는 인재가 되는지 알고싶습니다.! 감사합니다
답변 2
5
안녕하십니까,
목표로 하는 기업이신, 카카오 엔터프라이즈를 제가 잘 몰라서(카카오가 요즘 최고 선호 기업중의 하나라고 알고 있습니다 ^^;;) 어떤 수준의 기술을 그쪽에서 원하는지 좋은 답변을 드리기는 어렵지만, 일단 비전쪽 일반 회사 취업을 위해서라면 아래와 같은 사항이 요구 될 수 있습니다.
- 컴퓨터 비전에 대한 기본 이해
* 딥러닝이 아니라 이미지, 영상 등에 대한 기본 기술 능력을 말합니다. 예를 들어 image 기본 operation이나 Numpy 다루기, image threshold, bitwise operation, image filtering, image blurring/sharpness, noise reduction 등에 대한 기본 개념을 아시면 좋습니다. 이건 opencv를 공부하다 보면 기본적으로 익히실 수 있습니다.
- 딥러닝 컴퓨터 비전.
* 해당 영역은 크게 나누자면 아래와 같이 구분할 수 있습니다.
1. deep learning framework/CNN/image classification
2. object detection
3. segmentation
4. image generation(GAN), Super Resolution
물론 여기에 자율주행, Robotics Perception, AR 등이 있지만, 이들 분야는 매우 전문적인 분야이니 제외하고 또한 image generation(GAN), Super Resolution은 생성 모델이어서 Optional하게 선택할 수 있는 분야로 간주해도 될 것 같습니다. 경쟁력 있는 인재가 되기 위해서는 먼저 1, 2, 3번 영역에 대해서는 실력을 쌓으시는게 중요합니다. 1번 영역은 기본중의 기본이므로 반드시 숙달되어야 하는 영역입니다. 그리고 이 기본기를 바탕으로 object detection 또는 segmentation 등으로 영역을 더 펼쳐나가시는 방법을 택하시는게 좋습니다.
1번 영역에 어느 정도 숙달 되셨으면, 2번 영역, 3번 영역을 도전해 보시면서 역량 강화를 위해 아래와 같은 방법으로 좀 더 차별적인 실력을 키우실 수 있습니다.
a. 캐글등에서 image classification competition 중에 참가 팀이 많은 competition을 골라서 상위 10~15%가 될 때까지 계속해서 도전해보기. 적어도 5개 정도 competition 도전하기.
b. 중요 CNN Image Classification 모델을 직접 구현하기. ResNet은 강의에 있으니까, Mobilenet V2/V3 그리고 EfficientNet 구현하기
c. 중요 Object Detection 알고리즘 구현하기. Yolo v3나 RetinaNet 직접 구현하기.
d. 캐글의 object detection또는 segmentation competition이 참가해서 상위 20%가 될때까지 계속해서 도전해 보기.
위 4가지 정도 수행하시면 본인 스스로가 computer vision 영역에서 매우 경쟁력 있는 인재라고 느껴질 것입니다. 사실 위 4가지를 다 할정도가 되면 (Researcher가 아니라면)신입 spec으로는 차고도 넘친다고 생각합니다.
앞에서 말씀드린 부분을 달성하는데 어느정도의 시간이 필요한지는 잘 모르겠습니다. 다만 적어주신 현재 상황을 볼 때, 어림짐작으로 최소 6개월 이상의 시간이 필요할 것 같습니다. 취업을 해야하기 때문에 시간에 대해서 압박감(?)을 받으시는건 당연하겠지만, 시간에 대해서 조바심은 내지 않으셨으면 하는 바램입니다. 지식을 흡수하기 위해 빡세게(?) 하루 12 ~ 14시간씩 투자하더라도, 성장이라는게 단계가 있고, 지식이 익어가는 내면의 시간이 필요합니다. 자칫 짧은 시간에 많은 목표를 달성하기 위해 과도하게 노력하다가 오히려 중도에 포기할 가능성이 커질 수 있습니다. 빡세게 보다는 꾸준히가 더 중요하다는 마음가짐으로 계속 노력하시다 보면 어느덧 자신의 목표에 더 가깝게 갈수 있다고 생각합니다.
최신 기술 자체에 대한 지식을 얻는 것은 인터넷, 유튜브, 온라인 강의를 통해서 충분히 얻으 실 수 있을 것 같습니다. 그런데 습득 수준으로 올라가려면, 일단 앞에서 말씀드린 1, 2, 3에 대한 기본기를 충실하게 쌓으시는 게 중요합니다.
그런 다음에, open source 프로젝트나 github에 소스 코드를 직접 구현해 보는 게 좋습니다. 앞에 말씀드린 b와 c에 대해서 구현을 도전해 보십시요.
논문 이해는 b와 c를 해보시면 갈음하실 수 있습니다. 딥러닝 분야가 너무 빨리 변하기 때문에 논문등의 내용을 어느정도 숙지하고 흐름을 빨리 파악하는게 중요해서 논문 이해를 Job qualification에 올리는 경우가 있습니다. 하지만 논문 이해 보다 중요한 것은 앞 1, 2, 3에 대한 기본기이고, 이 기본이 되면 논문 이해를 할 단계에 올라갈 수 있습니다. 그리고 b, c를 직접 구현해 보시면, 논문 이해에 대한 레벨이 더욱 높아 질 수 있습니다. 사실 논문만으로 알고리즘을 완벽하게 이해하기는 무리입니다. 하지만 직접 구현해 보면 생생하게 알 수 있습니다(더불어 논문을 왜 이렇게 허접하게 썼는지도 알 수 있습니다. ^^;;)
지금 수준보다 좀 더 빡센 레벨을 제가 나열한 것도 같습니다. 하지만 경쟁력있는 인재가 되기를 목표로 하신다면 현재 수준을 완전히 넘어서는 학습목표를 잡으시고 이를 달성하기 위해서 포기하지 않고 시도해 보시는게 중요하다고 생각됩니다. 시도하고, 실패하고, 다시 시도하고 실패하는 과정 속에서 어떻게 원하는 목표에 빨리 다다를 수 있을지 본인만의 노하우가 생깁니다. 일단 이 노하우가 생기게 되면 쏟아지는 딥러닝 분야의 최신 기술에서 스스로 경쟁력을 발휘할 수 있습니다.
감사합니다.
2
답변을 너무 상세히 해주셔서 목표가 명확해지는것 같습니다 강의 열심히듣고 꾸준하게 성장해보겠습니다 답변감사합니다!