학습

머신러닝에서는 그 룰이라는 것을 모델이라고 칭한다. 머신러닝에서는 모델을 학습시킨다는 말을 주로 쓰는데, 모델을 학습시킨다는 것은 무슨의미일까? 학습하기 전의 모델은 일테면 어린아이 같다. 뭐가 뭔지 잘 모르게 계속 틀리는데, 예를들어 처음에 아이는 네발 달린 동물을 다 멍멍이라고 한다. 고양이를 보고도 멍멍이라고 하는 아이에게 틀렸다고 말한다. 그러면 아이는 네발 달렸다는 특징 말고도, 입이 튀어 나왔다는 특징으로 가지고도 판단하게 된다. 지금 모델을 학습시키는 것과 아이를 학습시키는 것을 대비시켜서 말했는데, 아이를 학습시키던 모델을 학습을 시키던 데이터가 필요하다. 네발이 달렸다는 정보, 입이 튀어나왔다는 정보, 귀가 쫑긋하다는 정보, 그리고, 이것은 강아지다 아니다라는 정보를 가진 데이터를 말하는 것인데, 즉, 네발 달린것, 입이 튀어나온 것, 귀가 쫑끗하다는 정보는 피처이고, 강아지다 아니다는 레이블이 되는 것이다. 통상적으로는 대문자 X를 사용하고, 레이블은 해당 피처를 가진 데이터의 분류인데, 이것은 타겟값에 해당하고 소문자 y를 사용해서 표현한다. 데이터에서 지정하는 피쳐들을 x1, x2, …, xn을 묶어서 X라고 표현하고, 고양이다 아니다, 개다 고양이다 등의 타겟값을 y로 표시하게 된다. 그래서, 이것을 테이블로 표현하면 아래와 같은 식이 되는 것이다.

x1 = 귀가 쫑긋 x2 = 입이 튁어나옴 x3 = 네발달림 y (고양인가?)
1 0 1 1
0 1 1 0

위와 같은 데이터로 만들어내는 모델을 수식으로 표현하면 다음과 같다.

y = w1x1 + w2x2 + w3x3 + b

모델을 학습시킨다는 것을 위의 수식의 관점에서 얘기하면 w1, w2, w3을 찾아내는 과정이다.

<여기서 OLS과 Gradient Descent에 대해서 한번 설명해야 함>

지금까지 얘기한 것이 머신러닝의 분류에서 Supervised Machine Leanring이다. Unsupervised ML은 레이블이 없는 데이터에 대한 것인데, 예를들어 feature만 있는 것인데, 단순히 그루핑을 하겠다는 것이다. ML용어로 클러스터링이라고 한다. 예를들면 20대, 최신스마트폰을 사용하고, 패션에 관심이 많은 그룹, 40대에 구형폰에 스포츠에 관심이 많은 그룹 등등으로 클러스터링을 한다는 것인데, 실제 활용예에서는 그렇게 간단한 데이터에 대해서는 사용하지는 않는다.

마지막으로 Reinforcement Learning(강화학습)이 있는데, 이것 하나만으로도 책한권에 해당하는 내용이기 때문에 알파고가 바둑과 같은 문제에 대해서 사용했던 머신러닝 분류 정도로 해두자. <머신러닝 분류가 정확한 표현인가?>

<최소한의 모델은 인간이 줘야함 - 인간의 뇌구조를 따르는 신경망>

results matching ""

    No results matching ""