머신러닝과 프로그래밍의 차이는 무엇이고, 왜 그토록 사람들이 머신러닝, 딥러닝을 필요로 하는지 알아보도록 하겠습니다.
우선 네이버 지식백과에 두 단어를 검색해보았습니다.
- 머신러닝: 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야
- 프로그래밍: 컴퓨터에 부여하는 명령을 만드는 작업
네이버 지식백과의 정의에 따라서 차이점을 생각해보면 다음과 같습니다. 프로그래밍은 프로그래머가 일어날 수 있는 모든 상황에 대해서 명시적으로 명령을 만들어야 하고, 머신러닝은 프로그래머가 일어날 수 있는 모든 상황에 대하여 명시적으로 명령을 부여하지 않아도 능동적으로 결과를 예측할 수 있다는 점에서 차이점이 있어 보입니다.
예를 들어 y = 2x + 1의 식의 결과를 알고 싶다면 어떻게 해야 할까? 각각의 방법은 아래와 같습니다.
- 프로그래밍: return 값이 2x+1인 함수를 구현하여 해결할 수 있다.
- 머신러닝: x의 값에 대응되는 y값 데이터를 학습시켜 해결할 수 있다.
위의 두 가지 방법의 차이점은 무엇일까? y값을 정답, x값을 데이터, 2x+1을 규칙이라고 가정하겠습니다. 그렇다면 프로그래밍은 규칙과 데이터를 통해서 정답을 도출하는 방법이고, 머신러닝은 정답과 데이터를 통해서 규칙을 도출하는 방법입니다. 아래의 그림은 각각의 작동방식을 표현한 것입니다.
아래의 코드는 위의 2x+1의 예제를 머신러닝과 프로그래밍으로 구현한 것입니다.
value_x = [1,2,3,4,5,6,7,8,9,10]
value_y = []
def rule(x):
return 2*x + 1
for x in value_x:
value_y.append(rule(x))
print(value_y)
[3, 5, 7, 9, 11, 13, 15, 17, 19, 21]
value_x는 데이터, value_y는 정답, rule 함수는 규칙입니다.
import tensorflow as tf
import numpy as np
from tensorflow import keras
model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
value_x = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], dtype=float)
value_y = np.array([3.0, 5.0, 7.0, 9.0, 11.0, 13.0, 15.0, 17.0, 19.0], dtype=float)
model.fit(value_x, value_y, epochs=1000)
print(model.predict([10.0]))
[[21.00419]]
y = 2x+1 규칙에서 x =10일 때 y 값은 21입니다. 이 부분에 대하여 프로그래밍은 정확하게 21이라는 답을 도출했지만 머신러닝은 21.00419라는 근접한 값을 도출했습니다. 이런 차이가 발생하는 이유는 프로그래밍에서는 y=2x+1이라는 규칙을 명시했지만 머신러닝은 주어진 데이터를 근거로 x=10일 때 y=21.00419쯤의 값이 나올 것이라고 예측했기 때문입니다.
머신러닝이나 딥러닝은 인간의 학습능력과 추론 능력, 지각 능력 등을 프로그래밍으로 구현한 기술입니다. 따라서 위의 머신러닝 모델은 결과로 가장 유망한 값을 예측하여 출력하기 때문에 0.00419라는 오차가 발생하는 것입니다.
'Artificial Intelligence > Machine Learning' 카테고리의 다른 글
[Machine Learning] 가짜 뉴스 분류 모델 - 파라미터 튜닝 (0) | 2021.03.08 |
---|---|
[Machine Learning] 가짜 뉴스 분류 모델 - 머신러닝 모델 (0) | 2021.03.05 |
[Machine Learning] 가짜 뉴스 분류 모델 - 데이터 전처리 (0) | 2021.03.04 |
[Machine Learning] 가짜 뉴스 분류 모델 - 데이터 수집 및 확인 (0) | 2021.03.03 |
[Machine Learning] 영화 관객수 예측 모델 (5) (0) | 2021.02.24 |