2

나는 이미지를 파싱 할 때 문맥이없는 문법을 사용하려고하는 프로젝트에서 일하고있다. 우리는 이미지 세그먼트의 나무를 만들고, 그런 다음 기계 학습을 사용하여 이러한 시각적 문법을 사용하여 이미지를 파싱하려고합니다.임의의 수의 이웃과 CFG를 구문 분석하는 방법은 무엇입니까?

나는 이상적으로 보이는 SVM-CFG을 찾았습니다. 문제는 문자열의 각 터미널이 최대 2 개의 이웃 (앞뒤 단어)을 갖는 문자열 구문 분석 용으로 설계되었다는 것입니다. 시각적 문법에서는 각 세그먼트가 임의의 수의 다른 세그먼트 옆에있을 수 있습니다.

이러한 시각적 문법을 분석하는 가장 좋은 방법은 무엇입니까? 특히 SVM-CFG를 사용하기 위해 데이터를 인코딩 할 수 있습니까? 아니면 내 자신의 커널/파싱 라이브러리를 작성해야합니까?

답변

1

SVM-CFG는 SVM-struct (여기에서 http://www.cs.cornell.edu/People/tj/publications/tsochantaridis_etal_04a.pdf, 섹션 4에 설명 됨)에 사용 된 커팅 플레인 최적화 알고리즘의 특정 구현입니다.

각 단계에서 커팅 플레인 알고리즘은 가장 높은 점수를 매기는 구조화 된 출력 할당을 찾는 함수를 호출합니다 (SVM-CFG에서 가장 높은 점수 산술).

SVM-CFG는 1 차원 문자열의 경우 동적 프로그래밍 알고리즘을 실행하여 다항식 시간에서 가장 높은 점수 분석을 찾습니다.

이미지에 대해 가장 높은 점수 분석을 반환하도록 SVM 구조체를 확장 할 수 있지만 이렇게하려면 다항식 시간 알고리즘이 없습니다!

다음은 이미지를 구문 분석하는 최첨단 기술에 대한 참조입니다 : http://www.socher.org/uploads/Main/SocherLinNgManning_ICML2011.pdf. 그들은 이미지 분할의 가장 높은 점수 분석을 찾기 위해 같은 문제를 겪습니다. 그래서 그들은 욕심 많은 알고리즘을 사용하여 근사해를 찾습니다 (4.2 절 참조). 비슷한 욕심 많은 알고리즘을 SVM-struct에 통합 할 수 있습니다.