본문 영역으로 바로가기

강의 목적

  1. 본 강의는 수강생이 기계학습(machine learning)의 원리를 이해하고, 그 원리를 적용하여 문제를 해결함으로 기계 학습 문제들을 해결하는 코딩하는 능력을 기를 수 있도록 한다.
  2. 4차 산업 혁명의 주요 부분을 차지하고 있는 소프트웨어와 기계학습을 통하여 이러한 기술 시대의 흐름에 대비한 계산적 사고력과 창의력을 향상하고, 문제 해결 역량을 갖추도록 하는 것이 목적이다.

강의 배경과 대상

본 강의는 대학교 1학년 학생을 대상으로 개발된 과정입니다. 고등학교에서 인문사회계열 과정을 마친 학생들이면 수강이 가능하도록 설계하였습니다. 다만 , 고교 교육 과정에서 다루지 않는 기본적인 파이썬 프로그래밍 지식은 필요합니다. 

기계학습 (Machine Learning) 혹은 딥러닝 (Deep Learning)에서는 파이썬 언어를 많이 사용하므로, 아직 파이썬 프로그래밍의 경험이 없는 학생들은 본 강의를 수강하기 전에 파이썬 프로그래밍을 공부하거나, 이미 프로그래밍 지식이 있는 학생들은 파이썬 학습을 필히 병행할 것을 권장합니다. 본 과정에서 다루는 기계학습의 원리를 배우기 위해 필요한 기본적인 행렬 연산과 미분, 추가적인 파이썬 넘파이 프로그래밍에 대한 강의들은 준비되어 있습니다.

최근에는 다양한 채널을 통해 탁월한 기계 학습을 강의들을 얼마든지 접할 수 있습니다. 그런데, 이 강의를 제공하게 된 것은 제 자신이 기계학습을 공부할 때 혹은 학생들을 가르치다가 겪은 어려움을 학생들과 나누게 되면서 더 많은 사람들이 기계학습을 시작할 수 있도록 도울 수 있다면 좋겠다는 동기와 목적으로부터 비롯되었습니다.

어떤 탁월한 강의는 기존의 개발된 라이브러리 코드 중심으로 활용에 중심을 두고 있습니다. 어떤 강의들은 많은 수학적 지식을 바탕으로 알고리즘 중심으로 그 원리를 설명하면서 진행합니다. 이미 구현된 라이브러리 함수들을 많이 사용하기 때문에 실제 알고리즘이 어떻게 작동이 되는 이해하기 힘듭니다. 기계학습으로 실제적인 문제를 해결하고자 할 때 어려움을 겪습니다. 또한 알고리즘 중심의 강의인 경우는 내용을 이해할 수 있을지라도 어떻게 구현하는지 몰라서 막막할 때가 많습니다.

대학에서 이러한 경험과 시행 착오를 거친 후에,
대학 입학생 정도의 수학의 기초지식과 기본적인 파이썬 프로그래밍 개념을 알고 있는 학생들을 대상으로 기계학습 강의를 개발하게 되었습니다 .



강의 내용

본 강의는 기계학습의 원리를 이해하기 위해, 일차 방정식과 한 개의 인공 뉴론으로 시작합니다. 단계별로 다양한 기계학습 알고리즘을 배우면서, 그에 걸맞는 인공신경망을 하나씩 모두 구현해 봅니다.  다양한 학습자료들을 다루어 보면서 일어나는 기계학습의 문제들을 다루기도 합니다. 단순한 퍼셉트론에서 시작하여, 아달라인 퍼셉트론, XOR 3층 신경망, MNIST 신경망,  끝으로는 딥러닝을 시작할 수 있는 심층신경망까지 구현합니다 .

본 강의를 다 마친다면 ,
더 높은 수준의 기계학습 공부할 수 기본 지식을 갖추게 되는 것을 물론이고 , 기계학습 오픈 프레임워크로 널리 알려진 텐서플로우, 케라스, 파이토치 같은 플랫폼도 어렵지 않게 시작할 수 있는 자신감이 생기고, CNN(Convolution Neural Network, 합성곱신경망)이나 RNN(Recurrent Neural Network, 순환신경망)과 같은  딥러닝 알고리즘도 어렵지 않게 이해할 수 있게 될 것입니다.


강의 계획

강의 계획표
주차주차명차시차시명학습요소
1 기계학습 소개와 개발환경 1 기계학습 소개 강의(15분), 퀴즈(5개)
2 기계학습 개발환경 강의(15분), 퀴즈(5개)
3 행렬 강의(15분), 퀴즈(5개)
과제 - 없음
2 함수와 뉴론, 넘파이 튜토리얼 1 함수와 뉴론 강의(15분), 퀴즈(5개)
2 넘파이 튜토리얼 1 강의(15분), 퀴즈(5개)
3 넘파이 튜토리얼 2 강의(15분), 퀴즈(5개)
과제 - 없음
3 인공뉴론 동작원리, 활성화 함수 1 인공뉴론의 동작원리 강의(15분), 퀴즈(5개)
2 미분 강의(15분), 퀴즈(5개)
3 활성화 함수 강의(15분), 퀴즈(5개)
과제 - 없음
4 퍼셉트론 1 퍼셉트론  강의(15분), 퀴즈(5개)
2 퍼셉트론 알고리즘 강의(15분), 퀴즈(2개)
3 퍼셉트론 코딩 강의(15분), 퀴즈(3개)
과제

[퍼셉트론 알고리즘 계산]

임의의 가중치를 설정하고 퍼셉트론 알고리즘을 입력에 적용하여 가중치를 구하는 문제. 

(세 문제)

입력과 가중치를 도식화 함. 
답은 선택형이며, 2회의 기회가 주어짐.

JoyHW 1-1, 1-2, 1-3

5 기계학습 작업흐름 1

기계학습 작업 흐름 1

강의(15분), 퀴즈(2개)
2 기계학습 작업 흐름 2 강의(15분), 퀴즈(3개)
3 객체지향 프로그래밍 강의(15분), 퀴즈(3개)
과제

[이진분류 퍼셉트론 코딩]

이진분류 퍼셉트론을 구현하고, 행한 후, 질문에 답을 함.
선택형이며, 2회의 기회가 주어짐

JoyHW 2 
6 객체지향 프로그래밍과 퍼셉트론 1 객체지향 퍼셉트론 구현 강의(15분)
2 객체지향 퍼셉트론 활용 강의(15분), 퀴즈(2개)
3 다층 퍼셉트론 강의(15분), 퀴즈(2개)
과제

[붓꽃 데이터셋을 퍼셉트론으로 분류하기]

코딩을 한 후, 질문에 답을 함.
선택형이며, 2회의 기회가 주어짐.

JoyHW 3
7 순방향 신경망 1 순방향 신경망 강의(15분), 퀴즈(3개)
2 순방향 신경망 예제 강의(15분), 퀴즈(3개)
3 아달라인과 경사하강법 강의(15분), 퀴즈(3개)
과제

[순방향 신경망 구현하고 실행하기]

주어진 가중치와 입력으로 예측값을 구하는 문제임.
(두 문제)

코딩을 한 후, 질문에 답을 함.
선택형이며, 2회의 기회가 주어짐.

JoyHW 4-1, 4-2
8 아달라인 경사하강법 1 아달라인 경사하강법 구현 강의(15분), 퀴즈(2개)
2 아달라인 경사하강법 적용 강의(15분), 퀴즈(2개)
3 역전파 1 강의(15분)
과제 - -
9 역전파와 XOR신경망 1 역전파 2 강의(15분)
2 XOR 신경망 모델링 강의(15분), 퀴즈(2개)
3 XOR 신경망 구현 강의(15분), 퀴즈(2개)
과제 - -
10 로지스틱 회귀 1 다층 신경망 모델링 강의(15분)
2 로지스틱 회귀 1 강의(15분), 퀴즈(2개)
3 로지스틱 회귀 2 강의(15분), 퀴즈(2개)
과제 없음
11 인신경망 구현 1 로지스틱 회귀 3 강의(15분)
2 MNIST Dataset 강의(15분), 퀴즈(2개)
3 경사하강법 1 강의(15분), 퀴즈(2개)
과제 - -
12 심층 신경망  1 경사하강법 2 강의(15분)
2 심층 신경망 1 강의(15분), 퀴즈(2개)
과제 - -
13 기계학습 오픈 프레임워크 1 심층 신경망 2 강의(15분)
2 기계학습 오픈 프레임워크 강의(15분), 퀴즈(2개)
과제 - -
14 기말시험

평가방법

본 강의의 평가방법은 퀴즈와 과제(숙제), 또한 기말시험과 질의응답(상호작용)으로 구성되어 있습니다. 

  • 퀴즈(40%): 각 강의마다 퀴즈가 3~5개의 간단한 문제가 선택식으로 주어집니다. 그러므로, 매주 강의마다 15개 미만의 퀴즈가 있습니다. 대부분 코딩이 필요없이 강의를 시청한 것으로 퀴즈를 풀 수 있습니다. 모든 문제는 선택식이며, 한 번의 기회가 주어집니다. 
  • 숙제(30%): 4주차부터 매 주마다 숙제가 한 문제씩 나갑니다. 한 문제가 1~3개의 작은 질문으로 구성되어 있는 경우도 있습니다. 숙제의 대부분은 코딩이 필요한 문제들입니다.  모든 문제는 선택식이며, 2회의 기회가 주어집니다. 
  • 기말시험(25%): 학기말 시험은 퀴즈와 과제 수준의 문제들로 구성됩니다. 
  • 질의응답(5%): 수강생 사이에 활발한 질의와 응답 및 상호작용이 이루어지는 것을 장려합니다. "배워서 남주자"라는 마음으로 지식을 함께 나눌 수 있는 장이 되기 위하여 질의응답 및 강의 관련 게시판에 공헌한 수강생들의 활동에 대하여 부여하는 점수입니다.   

퀴즈: 40%, 숙제: 30%, 기말시험: 25%, 질의응답(상호작용): 5% 

수료기준: 60점/100점