원료들을 벡터로 표현하고 임베딩하여 유사 원료를 확인하는 방법에 대한 논의
raw_data:receipt_3
) ds:receipt_3_dl
)code_learning
)수많은 원료에 대해서 일반화된 예측모델을 만들기 위해서는 고정된 예측모델에 대하여 원료에 대한 표현 벡터를 학습하는 방법이 효율적이다. 아래 예시처럼, 심층신경망은 원료들의 조합에 대해서 물성을 예측하며, 본 모델이 지원하는 특징은
이러한 요구 조건을 만족하기 위해서는 물성 예측 신경망을 계속적으로 변경하는 것이 아니라, 고정된 회귀 모형에 원료에 대한 적절한 표현벡터를 찾는 경우, 혼합물 예측이 가능하도록 만들어야 한다. 최종적으로 다음과 같이 원료에 대한 표현을 딥러닝을 학습하는 방식을 택하였다.
세부적인 모델 구조는 다음과 같이 원료에 대한 표현 벡터가 존재하고 함량에 대해서 곱한 상태로 혼합물 표현 벡터가 만들어진다. 원료 표현 벡터들은 혼합된 상태에 대해서 Regressor 가 제대로 물성을 예측하도록 만들어 진다.
수 많은 원료에 대해서 혼합된 벡터를 사용하여 예측하기 때문에, 혼합물 벡터의 차원은 저차원보다 고차원이 유리하다. 예를 들어서, 60개의 원료를 섞는 경우, 2차원 벡터라면 수많은 원료 표현에 대해서 2차원으로 응축된 형태를 만들어 예측하는 것이기 때문에, 충분한 정보를 담지 못할 가능성이 높다. 따라서 표현 벡터의 길이는 혼합물의 개수를 충분히 고려하도록 설계되어야 한다. 아래 그림은 벡터 길이에 따른 성능 차이를 보여준다. 학습 데이터에 대해서는 0~10만 viscosity 에 대해서 1%미만의 에러를 보이며, 테스트 데이터에 대해서 5% 수준의 에러를 보인다.
세부적인 성능은 다음과 같다. Full
의 경우 전체 데이터에 대한 에러 수준이다.
CODE_ACT | N_ENTRIES | STEP | Full | Eval | Train |
---|---|---|---|---|---|
tanh | 100 | 195000 | 1751 | 5425 | 176 |
tanh | 50 | 195000 | 1777 | 5511 | 177 |
tanh | 20 | 195000 | 1869 | 5738 | 210 |
tanh | 10 | 195000 | 1987 | 6118 | 216 |
tanh | 6 | 195000 | 2032 | 6174 | 257 |
tanh | 4 | 195000 | 2037 | 6217 | 245 |
tanh | 2 | 195000 | 2295 | 6731 | 394 |
Evaluation 데이터에 대한 에러 수준이 높은 것은 크게 두 가지이다.
추후 연구에서는 에러가 높은 이유에 대해서 추가적인 분석이 필요하다.
원료 표현 벡터 학습의 가장 큰 장점은 원료 표현 벡터에 대한 시각화를 통해서, 각 원료들의 표현이 어떻게 구성되는지 살펴보는 것이다. 벡터에 대한 시각화는 2차원까지 가능하며, 고차원의 경우 2차원으로 차원을 낮춰서 시각화해야 한다. 아래 그림은 5400개 원료에 대한 2D 시각화 예시를 보여준다. X,Y 축은 2차원 벡터의 값이며, 각 점들은 원료들이고, 색깔은 1번 원료부터 5400번 원료까지 순서를 나타낸 것이다.
해당 그림을 이해하는 방법은 다음과 같다. 중앙에 있는 원료의 경우, [0,0]에 위치해있으며, 원료 함량과 곱했을 때, 혼합물 벡터에 기여하는 값이 0이다. 따라서 물성 예측에 영향을 끼치지 않는 원료라고 이해할 수 있다. 이와 반대로 1 혹은 -1 근처에 모여 있는 점들의 경우, 물성 예측에 큰 영향을 끼치는 원료들이며, 만일 점이 가깝다면 혼합물 예측에 비슷한 영향을 끼치는 원료로 이해할 수 있다. 이러한 해석은 실무자가 원료를 섞을 때 예상하는 영향을 딥러닝으로 모델링 한 것으로 이해할 수 있다.
표현 벡터의 길이가 2인 경우, 원료 표현 벡터가 학습되는 과정을 시각화하면 다음과 같다.
더욱 높은 고차원 (10, 100) 에 대한 시각화는 2D로 표현 벡터들을 projection 시키고 살펴봐야 한다. 학습이 진행됨에 따라서 원료 표현들은 분산되며, 유사한 원료들은 표현 자체가 비슷한 곳에 형성된다.
원료 표현 자체가 모델에 어떠한 영향을 끼치는지, 실제 원료 표현이 유사하면, 실무자가 판단하기로도 유사한 물질인지 이해하기 위해서는 벡터 공간에 대해서 몇 개의 그룹들을 찾고 원료들을 분석해야 한다. 이러한 분석 방법은 “학습 데이터 수가 부족한 원료”가 있다면, 실무자가 표현 벡터를 강제하여 성능을 올릴 수도 있기에, 아주 중요하다.
물성에 대한 인공지능을 하기 위해서 구분해야 하는 것은 두 가지이다. 첫 번째는 물성 자체에 대한 표현 벡터들을 고려하고, 벡터들의 특징을 이해하는 것이다. 두 번째는 표현 벡터를 활용하여 예측 모델을 만드는 것이다. 이 때 가정은 벡터 표현 자체가 유사하다면, 예측도 유사하다는 점이다. 두 가지를 구분하는 경우, 실무자는 표현벡터공간에 대한 해석을 토대로 물질들이 모델에 끼치는 영향을 이해할 수 있으며, 예측의 어려움을 딥러닝 알고리즘에 전가한다.