2014-04-19 3 views
1

일반적으로 실수 벡터 만 사용하는 Kohonen 맵/SOM 알고리즘을 구현하는 것은 상대적으로 쉽지 않습니다. 나는 "weight update"단계로 인해 텍스트 문자열과 같은 실제가 아닌 (즉, 비 스칼라) 속성에 대해 이러한 알고리즘을 구현하는 방법을 생각합니다.비 스칼라 입력 데이터/속성을 사용하여 Kohonen 맵 (SOM)을 구현하는 방법

장미 (매우 낭만적 인), 꽃 (낭만적 인), 식물 (문맥에 따라 낭만적 인)과 같은 다양한 길이, 의미 클래스 및 낭만주의 등급을 포함하는 데이터 집합이 있다고 가정합니다. 공장 (steampunkers 만 낭만적 인). 나는 그것을 만들고있어, 그래서 세부 사항을 무시하십시오. (편집 : 예, 로맨틱 네스는 스칼라 값으로 표현 될 수 있으며, 내 질문은 정말로에 대한 부분입니다.)

한 다음지도에 프로토 타입을 생성하는 단어 또는 문자를 섞고 수 Levenshtein 거리를 사용하여 가장 일치하는 유닛을 찾으십시오. 그러나 어떤 방법으로 BMU와 그 이웃을 선택된 대상 벡터쪽으로 업데이트 할 수 있습니까?

다른 예로는 1 차원 (스칼라) 데이터 스트림에 포함 된 그림 (예 : 색, 테마, 시대, ...) 또는 감지 된 모양 (예 : 삼각형, 톱니 모양, ...)이 있습니다.

+0

요즘이 문제에 대해 생각해 볼 때 해결책은 정량의 벡터 공간 삽입을 얻는 것이라고 가정합니다. 문제의 예측 인자 (단어 'word2vec'가 떠오른다.)를 기반으로 클러스터를 만든다. – sunside

답변

0

로맨틱 한 정도는 숫자가 아닐까요? "이 장미는 0.9 로맨틱합니다." 그런 다음 SOM에서 0.9에 맞는 위치를 찾으십시오. 이것이 장미가 앉는 곳입니다. 여러 치수가있는 경우 기본적으로 하나의 벡터이지만 숫자가 아닌 벡터이므로 문자열을 더 쉽게 업데이트 할 수 있습니다.

+0

그건 분명 사실이지만 제 질문은 그 비 스칼라 파트를 매핑하는 것입니다. 즉, 매핑 된 단어는 단지 샘플이 아닙니다. – sunside

+0

기본적으로 "BLA"라고하는 "가중치"를 이동하는 방법을 찾고 있습니다. "BLUB"에 0.05라고 업데이트하면 결과는 0.95 * BLA + 0.05 * BLUB이 될 것이므로 어떻게 그러한 문자열이 생겼는지를 묻는 것입니까? – Nicolas78

+0

본질적으로 그렇습니다. 나는 이것이 이상한 질문이라는 것을 알고 있지만 그러한 경우를 다루는 방법에 관한 정보는 (있을 경우) 많이 찾을 수 없었다. 사용할 수있는 표준 변환이 있습니까? 알다시피, 그런 종류의 솔루션. – sunside