[ML] - Machine Learning vs Traditional Programming (Rule-Based)

서현이의 개발 기록장·2022년 11월 7일
0

ML

목록 보기
3/7
post-thumbnail

우리는 어떠한 문제를 해결하기 위해 프로그램(알고리즘)을 만든다.
사람들은 그 프로그램이 최고의 성능을 내도록 하기 위해서, 백준과 같은 사이트에서 알고리즘 문제를 풀곤 한다.

전통적인 프로그래밍과 머신러닝은 서로 방식은 다르지만 두 가지 모두 프로그램(알고리즘)을 만드는 것을 목표로 한다.
그래서 전통적인 프로그래밍과 머신러닝이 어떤 방식의 차이가 있는지 알아볼 것이다.


Traditional Programming

Rule-Based (규칙 기반 프로그래밍)

어떠한 문제를 해결하기 위해, 사람이 데이터를 가지고 이를 어떻게 활용하면 좋은 결과 값(정답, 타깃)이 나올지 생각한다. 그리고 그 생각을 가지고 프로그램(알고리즘)을 구현한다.

흔히 백준 사이트에서 문제를 푸는 것과 같다.

예를 들어 소수 판별 프로그램을 만든다고 생각해보자!

  • 소수 찾기 프로그램에서 주어진 데이터(정보)는 숫자(1,2,3,4,5....)이다.
  • 결과 값(정답, 타깃)은 2,3,5,7,11.... 등이 소수라는 것이고, 그 이외에는 소수가 아니라는 것이다.

이를 가지고 사람이 직접 소수를 판별하는 규칙을 구상하여 알고리즘을 생각해 구현해낸다.


Artificial Intelligence

Machine Learning (기계 학습)

어떠한 문제를 해결하기 위해, 인공지능에게 데이터와 결과 값(정답, 타깃)을 주면 두 값의 상관 관계를 분석해서 스스로 알고리즘을 만든다.

예를 들어 비행기인지 자동차인지 판별하는 프로그램을 만든다고 하자!

  • 사진 이미지 파일은 데이터이다.
  • 그 사진이 어떤 사진인지 알려주는 이름은 정답(타깃, 레이블)이 된다.

머신러닝은 데이터와 정답을 알려주면 이를 기반으로 스스로 프로그램(알고리즘)을 만들어 낸다.


Traditional Programming, Machine Learning 차이

전통적인 프로그램은 데이터와 알고리즘을 주면 결과를 내는 것이고,
머신러닝은 데이터와 결과를 주면 알고리즘을 내는 것이다.

예를 들어 개와 고양이를 구분하는 프로그램(알고리즘)을 만들고 싶다고 하자!

어떻게 개와 고양이를 구분하는 프로그램을 만들 수 있을까?

  • 전통적인 프로그래밍에서는 개의 특징과 고양이의 특징을 가지고 조건문을 만들어 분류할 것이다.

  • 머신러닝에서는 개와 고양이라는 레이블(정답, 타깃)과 사진 데이터를 주어 스스로 학습해서 알고리즘을 만들어 내도록 할 것이다.


<< 전통적인 프로그래밍에서는 >>

  • 다리가 4개 있고 꼬리가 길고 기어다니는 동물을 강아지라고 프로그래밍했고,
  • 다리가 4개 있고 꼬리가 짧고 기어다니는 동물을 고양이라고 프로그래밍 했다고 가정하자.

이때 만약 불의의 사고로 꼬리가 짧아졌거나, 애초에 태생부터 꼬리가 짧은 강아지인 경우에는 강아지가 아닌 고양이라고 판별할 것이다.
즉, 전통적인 프로그래밍에서는 예외적인 범용적인 상황에서는 좋은 성능을 낼 수 없다.


<< 머신러닝에서는 >>

  • 수 많은 고양이와 강아지 사진을 주고 인공지능 모델이 스스로 학습하게 했다고 하자.

사람이 프로그래밍을 하는 것이 아니기에, 어떻게 인공지능이 고양이와 강아지를 구분짓는지 우리는 알 수 없다. 인공지능 모델이 스스로 어떠한 특징이 두 클래스를 구분짓는데 중요한지를 학습하기 때문이다. 이것을 블랙박스라고 한다.

일일히 모든 조건을 만들기 어렵고 어떤 특징이 중요한지 잘 모르는 문제에 있어서는 머신러닝이 훨씬 좋다. 하지만 데이터가 너무 적고 단순한 문제는 전통적인 프로그래밍이 더 좋다.
(좋다 나쁘다는 정확도와 프로그램의 가벼움 기준)

또한 머신러닝은 많은 데이터를 주면 줄수록 다양한 특징 모두 고려할 수 있다.

이때 만약 불의의 사고로 꼬리가 짧아졌거나, 애초에 태생부터 꼬리가 짧은 강아지인 경우에도 인공지능은 두가지 클래스를 잘 판별할 것이다.


profile
HanYang ERICA Univ. Department of Artificial Intelligence

0개의 댓글