- 5
- 이니스프리
- 조회 수 506
1. Python 프로그래밍과 데이터 분석
2. 머신러닝&딥러닝 입문
출처: http://www.snuedu.net/lecture/index.php?behavior=view&ccode=SNU&code=SNU19155
내년 5월에 연수원 들어가기 전까지 시간적 여유가 있어서 그동안 못 했던 공부를 해보고 싶습니다.
운좋게 위와 같은 강좌가 예정되어 있다고 공고 떴는데요.
시간이 맞는다면 1번 또는 2번 강좌를 수강해보려고 하네요.
1번 강좌를 수강하여 여태껏 독학했던 내용을 복습하고 제가 그다지 다뤄보지 못한 pandas 등에 대해서도 학습하면 좋을 것 같고,
2번 강좌를 통해 머신러닝에 대해 공부해도 좋을 것 같습니다.
그런데 1번 강좌에서는 단 10일 동안 저 많은 내용을 모두 다룬다면 약간 맛보기(?) 강좌가 될 것 같네요.
아무래도 pandas를 비롯한 각 라이브러리에 대해 하루 이상 시간을 배정하지는 못할테니깐요.
2번 강좌는 제가 머신러닝은 Tensorflow 교재를 조금 읽은 초보 수준이라서 강의의 내용을 봐도 구체적으로 어떠한 것을 다루는지 잘 모르겠네요 ㅠㅠ
제가 여쭤보고 싶은 점은 두 강좌 중에 어느 것을 수강하면 좋을지인데,
조금 이상한 질문일 수도 있겠지만 머신러닝을 공부하게 되면 일상생활에 어떻게 접목시킬 수 있는지 궁금합니다.
OCR이나 얼굴인식 등에서 머신러닝을 공부하여 활용한다면
Tesseract 또는 OpenCV에서 haarcascade_frontalface_alt.xml을 사용하는 것보다 인식률이 높아질 것이라는 점은 이해하겠는데요.
위 강의계획표에서 세부교육내용에 포함되어 있는 것들을 배우면 구체적으로 생활 속에서 어떻게 활용할 수 있는지 아직 잘 모르겠습니다.
딥러닝의 30가지 적용사례라는 웹문서가 있던데, 여기에는 없지만 알고리즘 트레이딩을 할 수도 있겠네요~
https://brunch.co.kr/@itschloe1/23
오래 전의 기술로 촬영되어 흑백이거나 픽셀이 뭉개진 사진을 복원하는 것은 요새 많은 분들이 하시는 것 같더군요.
COS PRO 1급 과정도 서울대입구역의 렉토피아 센터에서 진행되던데
아쉽게도 3개의 강좌가 날짜가 겹쳐서 한 개만 수강이 가능할 것 같더군요 ㅜㅜ
아래에 캡쳐화면을 첨부했습니다.
알고리즘에 대해 공부하는 것도 의미가 있을 것 같은데 제가 알고리즘이란게 정확히 무엇인지를 모르다보니
3개의 강좌 중에서 어떤 강좌를 수강해야 될지 고민이네요 ㅠㅠ
수강대상자가 SW 분야 대기업 취업 준비자나 재직자인 것 같은데 여기에 제가 해당하지도 않구요.
컴퓨터 관련 전공이시거나, 관련 업계에서 종사하시는 분이 계신다면 강좌 선택에 조언을 부탁드립니다.
그럼 미세먼지 조심하시고 안녕히 주무세요~ ^-^
감사합니다!!
작성자
댓글 5
바쁘신데 상세한 조언을 해주셔서 감사합니다!!
1. Python 프로그래밍과 데이터 분석 과정은 말씀해주신대로 모듈에 대한 개론만 하고 끝날 것 같네요. 제가 현재 부족한 부분은 구글링이나 서적을 통해 공부하겠습니다 ^^
2. 아무리 찾아봐도 Tensorflow인지 Pytorch인지 명시가 안 되어 있는데 이 부분은 직접 문의를 해봐야겠군요 ㅠㅠ
일단 제가 딥러닝에 대해 기초지식이 없어서 용어에 대한 이해가 부족한데, humit 님께서 말씀해주신 부분을 구글링해서 어떤 내용인지 감을 잡아보겠습니다.
3. 말씀을 듣고보니 알고리즘 강의도 애매하군요 ㅠㅠ
일단 Programmers에서 알고리즘 인강을 하나 수강할 예정입니다.
제가 잘 모르지만 프로그래머스 문제를 풀다보니 탐욕 알고리즘은 낮은 레벨에서도 중요한 것 같더군요 ㄷㄷ
제가 지식이 짧다보니 어떤 강좌가 어떤 내용인지 파악하는 것도 힘드네요~
내년에 연수원 들어가면 실강을 들을 기회가 한동안 없을 것 같아서 이번 동계강좌를 수강해보려고 했는데, humit 님 말씀을 듣고보니 강좌에서 다루는 내용을 좀 더 구체적으로 알아보고 결정해야겠네요.
항상 감사드립니다!!
딥러닝 과정에서 설명된 목차에 대해 간략히 소개하면 다음과 같습니다.
Linear Regression : 입력된 데이터가 결과 데이터와 어떤 선형 관계를 이루고 있는지 계산하는 방법 / ex) 집 평 수와 가족 구성원 수로 소득 예측 모델 만들기
Logistic Regression : Linear Regression과 형태는 유사하지만 결과 데이터가 범주로 나와서 일종의 분류법이라고 보시면 됩니다. / ex) 온도와 습도가 주어져 있을 때 비 오는 여부 예측하는 모델 만들기
K-Means : 주어진 내용을 K개의 그룹으로 묶는 방법 / ex) 주어진 이미지를 10개의 색깔로 유사하게 표현하기.
Kernel SVM : Deep Learning 방식이 많이 사용되기 전에 많이 사용하는 알고리즘이었습니다. 선형으로 데이터를 구분하는 것이 아니라 비선형 함수로 데이터를 구분하는 방식이라고 생각하시면 되겠습니다.
Random Foreset : ?
아래 두 방법은 딥러닝에 사용하는 테크닉입니다.
Backpropagation : Deep Learning에서 학습을 할 때 무조건 쓰이는 가장 핵심적인 알고리즘입니다. 오차를 계산하여 해당 오차를 줄여주는 방식으로 값을 업데이트를 해주는 방법이라고 생각하시면 됩니다.
Batch-Normalization : 학습을 할 때 좀 더 학습이 잘 일어나도록 layer를 통과한 데이터를 처리하는 방법이라고 보면 됩니다. 모델을 작성할 때 명시를 해주면 됩니다. 이 부분은 왜 따로 챕터로 뺐는지 모르겠네요. 차라리 학습을 잘 시킬 수 있는 방식이라는 주제로 해서 그 중에 한 가지로 Batch Normalization을 포함하는 형태로 다루었으면 좋았을 것 같네요.
여기서부터는 딥러닝 모델 구조입니다.
CNN(Convolution Neural Network) : 다음 Layer를 얻을 때 특정 필터로 Convolution을 한 결과로 업데이트를 하는 방식입니다. 이미지 분류를 하는 경우 거의 이 구조라고 보시면 됩니다. 구조의 특성상 들어오는 데이터의 크기가 고정되어 있습니다.
사용 예로는 이미지 분류, 해당 이미지에서 박스로 우리가 찾으려고 하는 물체를 표시해주는 것 등이 있습니다.
RNN(Recurrent Neural Network) : 순환 신경망이라고 하며 똑같은 layer가 반복해서 사용되기 때문에 CNN과 달리 정해진 크기가 아니라 임의의 크기의 데이터가 들어올 수 있습니다. 임의의 크기가 들어올 수 있다는 점 때문에 문자열이나 음성 등의 데이터를 입력으로 사용합니다.
다만 Pure RNN의 경우에는 학습이 잘 일어나지 않는다는 단점이 있어서 이를 어느 정도 해결한 LSTM이나 GRU라는 모델이 등장하게 되었습니다.
사용 예로는 음성 인식, 임의의 문자열 생성, 번역 등이 있습니다.
최근에 Transformer라는 새로운 형태가 제안되었고 RNN에 비해 성능이 잘 나온다고 합니다.
GAN(Generatvie Adversarial Network) : 실제 같은 데이터를 만들어내는 방식이라고 생각하시면 됩니다. 해당 모델을 설명할 때 위조지폐범과 경찰로 예를 들어서 설명하는데, 위조 지폐범은 경찰을 속이기 위한 데이터를 생성하고, 경찰은 이를 잡아내는 형태로 2명 모두 학습을 하는 형태라고 보시면 됩니다. 다만 이 방식의 경우 위에서 언급했던 CNN과 RNN에 비해 학습과정에서 "훨씬 많은" 시간이 걸립니다.
예시는 가짜를 만들어내는 모든 것들이라고 생각하시면 될 것 같습니다. 최근에 이슈가 되었던 딥페이크가 대표적인 예입니다.
솔직히 말해서 5일 가지고 하기에는 시간이 엄청 부족할 것 같네요. 되게 단순하게 다루고 넘어갈 것 같습니다.
Chapter 1과 Chapter 3에 관한 내용만 다루는데 1학기가 걸렸거든요..
이번 학기에 교수님이 강의 녹화를 하셨는데, 공개가 될지 안될지는 잘 모르겠네요;;
허거걱 상세한 설명 감사드립니다!!
덕분에 어렴풋하게나마 각 개념에 대해 대략 어떤 것인지 감을 잡게 되었네요 ^^
한 학기에 다 다룰 수 없는 내용을 5일만에 한다니... 입문용 강의겠네요~
수박겉핥기식 강의가 될 수도 있겠지만, 역으로 저같은 입문자에게 적합할 수도 있겠다는 생각이 들기도 하네요.
일단 humit 님께서 정리해주신 개념들을 구글링을 통해 더 알아보고 수강 여부를 결정하도록 하겠습니다!
강의 레코딩을 하신 것이 공개가 되면 좋겠지만... 저같이 파이썬의 기본적인 문법만 조금 아는 비전공자가 듣기에는 쉽지 않을 것 같다는 생각도 드네요 :)
1번 강의가 교재나 구글링을 통해 대체될 수 있는 것이라면, 2번 3번 강의 중에서 선택을 해야될 것 같네요 ^-^
다시 한 번 감사드립니다!!
Python 프로그래밍과 데이터 분석 과정의 경우에는 내용으로 봤을 때 파이썬 기초 문법을 비롯해서 자주 사용하는 모듈에 대한 사용 방법에 대해 알려주는 형태로 끝이 날 것 같네요. 구글에서 필요한 구현 방식에 대해 찾는 것이 가능하다면 굳이 들을 필요는 없을 것 같네요.
그리고 딥러닝의 경우에는 어떤 프레임워크로 다루는지에 대해 명시가 되어 있지를 않네요. 딥러닝에 사용하는 프레임워크로 Google에서 개발한 Tensorflow와 Facebook에서 개발한 Pytorch가 거의 비슷한 점유율로 사용되고 있고, 요즘 학술 분야에선 Pytorch의 비중이 점점 높아지고 있습니다.
둘 다 써본 입장에서는 아무래도 Tensorflow보다는 Pytorch가 더 편리했었습니다.
Tensorflow가 이제 2.X 버전이 stable 버전으로 바뀌었는데, 이 과정에서 생각보다 의도하지 않았던 현상이 많이 발생하는 것 같더라고요.. (메모리 해제 문제 등) 특히나 RNN의 경우에는 같은 모델로 작성했는데도 불구하고 Tensorflow에서는 학습이 안되던 것이 Pytorch에서는 훨씬 잘 일어나는 것도 있습니다. 다만 배운다고 바로 활용하기가 어려운 점이 학습 시 컴퓨터 자원이 많이 필요로 하기도 하고 필요한 데이터셋을 확보하는 것도 많은 어려움이 있습니다. 모델을 어떻게 설계할 것인지와 어떤 SGD 알고리즘을 사용할지, 그리고 learning rate는 어떻게 설정해야 하는지 등에 대한 내용을 직접 정해야 하기 때문에 정확도를 올리는 것이 어렵습니다.
또한 Keras가 도입되면서 어느 정도 괜찮아지기는 했지만 예전에는 되게 이해하기 어려운 형태로 모델을 만들어야 했었습니다. (tf.Variable을 만들어서 연동을 하는 등)
그에 비해 Pytorch의 경우에는 문법의 형태가 기존 파이썬과 많이 유사하여 쉽게 사용할 수 있다는 점이 있습니다.
알고리즘 강의의 경우에는 부족한 부분이 있네요. 보통 동적 계획법에서 확장해서 탐욕 알고리즘까지 다루는게 맞을텐데 말이지요.. 그리고 그래프 최적화는 정확히 어떤 내용인지 짐작이 가질 않네요...
다만 제가 COS PRO 1급 시험을 보지 않아서 확실하게 답변드리기는 어려울 것 같네요.