이 분야는 너무 빠릅니다. 그러다보니 스트레스도 많고 정말 매일 공부해야 하는것 같습니다. 쉬면서 논문도 틈틈히 읽어야 하고, 직접 구현도 해보고요. 재미는 있지만 요즘은 벅찰때도 있네요.
사실 이 분야를 들어오기 전에는 딥러닝 엔지니어하면 그냥 네트워크에 데이터 때려 넣고 하이퍼 패러미터만 바꿔되면 되는줄 알았습니다...하지만 공부하면 할수록 내가 논문에서 본 네트워크를 나의 프로젝트에 맞게 적용해서 스스로 만들려면, 정말 깊은 수학적 이해와 이를 효과적으로 구현 할수 있는 코딩능력이 필요하다는걸 깨달았습니다. 특히 딥러닝의 수학적 이해가 필수라는 것을 점점 느낍니다. 잘 안되면 CNN에 데이터 더 집어넣고 더 깊게 만들고가 끝이 아니라, 왜 이런 결과가 나오는지, 내가 사용하는 모델이 이 목적에 맞고 잘 구현했는지, 또한 내 데이터에 이 모델이 어떤 식으로 영향을 미치고 이걸 해결하려면 어떤 방향으로 접근해야 하는지 정확히 알아야 한다는걸 깨달았습니다. 그리고 또 발견한 문제를 해결하기 위해선 데이터를 더 만드는것 뿐 아니라 loss가 적합한지 보고 아니라면 어떤 custom loss를 구현할지 또 이 loss의 gradient가 바뀌는 거에 따라 regularization은 어떻게 해야하는지 등등 생각하다 보면 이게 프로그래밍인지 그냥 수학인지 머리가 아파오네요...
처음엔 이 분야가 멋있고 재미도 있어서 뛰어들었지만, 요즘은 쉴틈없는 공부에 압박을 느끼네요..전문가와 아닌 사람들의 차이가 너무도 큰 필드이기에 쉴수없이 공부해야하는것 같습니다..다른 분야도 마찬가지 이겠지만 정말 즐기지 못하면 오래 있을수가 없는 분야 같습니다..
구조해석에서 jacobi 이런것만 해봐도 느낌이 오더라구요
수학적인 이해..
딥러닝은 더 할것 같더니 그렇군요
수 많은 데이터로 분포보고 어떤 모델을 세워야 하고 중간에 맞지 않으면 다시 만들고... 검증하고... 하는건 통계학인데
수학에 대한 더 많은 공부가 필요했었어요. ㅠㅠ
저는 수학맹이지만 취미로 하고 있다가 일로 조금 연결되었는데
가볍게 활용하는 수준이라 아직은 큰 무리가 없네요.
(프로그램 짜는 것도 귀찮아서 XML 형태로 기술하면 딥러닝 모델 만들고,
학습 처리하는 라이브러리도 만들었습니다.)
그래도 딥러닝으로 처리할 수 있는 일을 생각해보면
영역이 잘 맞는 일의 경우 기존 프로그래밍으로 하는 것의 어려움을 생각해봤을 때
노력에 비해 엄청나게 좋은 결과를 내 준다고 생각합니다.
딥러닝이 아니라도 어차피 이렇게 흘러갈 수 밖에 없습니다.
역사적으로 인간은 항상 더 효율적으로 업무를 진행하는 식으로 연구해왔고
또 그렇게 발전해온 결과가 현재니까요.
기존에 프로그램으로 짜던 걸, 학습데이터와 결과를 이용해서 훈련시켜서 만드는 겁니다.
좀 더 자세히 말하자면 기존에는 개발자가 룰을 코딩(입력)하여 데이터를 받아서 결과를 내는 프로그램을 만들었다면
딥러닝에서는 데이터와 결과를 입력으로 사용해 훈련을 통해서 룰을 만들어 내고
그 룰로 다시 다른 입력 데이터를 받아서 결과를 만들어 내는 식으로 과정이 변형된 겁니다.
실제로는 프로그램으로 짜기 힘들거나 많은 노력이 들어가는 일에 대해서
더 쉽게, 더 빠르게 할 수 있다는 것 외에는 결과에 있어서는 별 차이가 없습니다.
물론 더 쉽게, 더 빠르게 할 수 있다는게 정말 무서운 겁니다.
예를 들어 제가 다른 분에게 설명할 때 이런 예를 듭니다.
시험 두 과목을 쳐서 평균 50점이 넘으면 통과하는 시험이 있고, 이 통과를 확인하는 경우인데,
이건 프로그래밍으로 굉장히 쉽게 해결 가능하죠.
(a + b) / 2 > 50 으로 가볍게 해결할 수 있는 문제입니다.
딥러닝으로도 a와 b를 수만개 만들어 두고 (a + b) / > 50인 경우 True를
아닌 경우 False로 해 둔 다음 훈련 시키면 되는 간단한 문제죠.
하지만 손으로 쓴 글씨 0~9를 읽어내는 문제는 프로그래밍으로는
굉장히 많은 코드와 복잡한 방법을 처리해야 하지만
딥러닝에서는 위의 예(>50의 경우)와 거의 유사합니다.
손글씨 0~9의 이미지를 수만개 수집하고 결과를 0~9로 해서 훈련시키면 되죠.
결과적으로는 딥러닝을 적용하면 프로그래밍으로는 매우 힘든 일을 쉽게 할 수 있습니다.
딥러닝은 장점은 바로 그거죠.
목적과 결과를 구분 못하시는것 같네요
업계에 있으면 '알려진' 적합한 방식을 적용해서 말씀하신 노가다로 결과물이 잘나오면 되는거 아닐까요?
어차피 '설명가능한 뉴로네트워크'도 돌려보면 설명안되던데....
실제 돈이 되려면 실무 접목을 해야되는데 딥러닝 전문가는 실무를 모르고, 실무 전문가는 딥러닝을 모르고.....
컨설팅을 받아도 현실적으론 딥러닝을 실무에서 배워서 아이템 발굴해서 같이 타당성 검토하는 방법 뿐이더군요..
연구가 빠른건 연구자에겓ㅎ 곤혹스럽지만 일반 유저들도 고통고통 ㅠ
그래서 요즘은 회사에서 이분야에 인력투입 안하고 다른것 시키고 있네요 ㅠㅠ