변형 불변 신경망의 순열


14

입력 n 데이터 포인트 인 x 1 , , x n 을 취하는 신경망 f 가 주어 집니다 . 우리는 말할 F IS 순열 불변 경우x1,,xn에프

f(x1...xn)=f(pi(x1...xn))

순열 p나는 .

누군가가 불변의 신경망을 순열하기 위해 출발점 (기사, 예제 또는 다른 논문)을 추천 할 수 있습니까?


흥미로운 질문입니다. 입력을 벡터가 아닌 세트로 취급하려고합니다. 입력 값이 스칼라이거나 비교 가능하다고 가정하면 순열이 변하지 않는 정식 표현을 생성하고 정규 네트워크에 입력하기 위해 입력을 정렬하는 것을 고려 했습니까?
mjul December

@mjul 내 입력은 일련의 클라이언트 베팅입니다 (각 베팅은 범주 형 및 연속 변수로 구성된 벡터로 표시됨). 예를 들어 시간순으로 주문할 수 있지만 각 고객에 대한 베팅 사이의 시간 간격이 매우 다르기 때문에 이치에 맞지 않습니다. 이것은 아마도 각 베팅에 대한 계수를 붕괴시키는 시간 함수 (고정 또는 학습)를 사용하여 해결할 수 있습니다. 그러나이 경우 순서가 실제로 중요하지 않다고 생각하기 때문에 순서가없는 데이터를 먼저 시도하고 싶었습니다. 각 클라이언트에 대한 베팅을 대칭 적으로 처리해야합니다.
Josef Ondrej

네트워크 출력이란 무엇입니까? 네트워크가 순열 불변 인 경우, 출력은 모든 입력 순서에 대해 동일합니다. 이것이 당신이 원하는 것입니까?
BlueMoon93

@ BlueMoon93 예, 정확히 내가 원하는 것입니다. 입력 순서에 의존하지 않는 한 출력은 무엇이든 가능합니다 (숫자, 벡터).
Josef Ondrej

왜 변형 불변 신경망을 원할까요?
kc sayz 'kc sayz'2

답변:


2

내가 아는 한, 네트워크 구성 방식으로 인해 아무도 시도하지 않았습니다. 각 입력에는 더 많은 입력에 연결된 가중치 세트가 있습니다. 입력이 전환되면 출력도 변경 됩니다.

그러나이 동작에 접근하는 네트워크를 구축 할 수 있습니다. 트레이닝 세트에서 배치 학습을 사용하고 각 트레이닝 샘플에 대해 가능한 모든 순열을 네트워크에 제공하여 순열이 변하지 않는 것을 학습하십시오. 이것은 절대 변하지 않을 것 입니다.

이를 수행하는 또 다른 방법은 모든 입력에 대해 가중치를 복제하는 것입니다. 예를 들어 3 개의 입력 (i0, i1, i2)이 있고 다음 숨겨진 레이어에 2 개의 노드 (hl0, hl1)와 활성화 기능 F가 있다고 가정합니다. 완전히 연결된 레이어를 가정하면 2 개의 가중치 w0 및 w1이 있습니다. 숨겨진 계층의 노드 hl0 및 hl1은 각각 다음과 같이 제공됩니다.

  • hl0 = F (i0w0 + i1w0 + i2w0)

  • hl1 = F (i0w1 + i1w1 + i2w1)

따라서 값이 입력에서 변경되지 않은 순열을 갖는 숨겨진 레이어를 제공합니다. 이제부터는 나머지 네트워크를 배우고 구축 할 수 있습니다. 이것은 컨볼 루션 레이어에서 파생 된 접근 방식입니다.


주제를 벗어난 것은 멋진 프로젝트처럼 보입니다. 일부 연구 프로젝트에 협력하려면 저에게 연락하십시오 (내 프로파일 확인).


제안 된 첫 번째 접근법은 계산 복잡성으로 인해 제 경우에는 불가능할 것입니다. 반면에 두 번째는 너무 제한적인 것 같습니다. 그러나 그것은 좋은 출발입니다. 내가 지금까지 생각해 낸 것은이 문서에서 찾은 것과 비슷한 접근 방식입니다 : arxiv.org/pdf/1612.04530.pdf . 먼저 0 ... n에서 입력 x_i, x_j, i, j의 모든 쌍 (일반적으로 모든 k 튜플)을 고려하고 모든 신경 네트워크를 적용합니다 (각 쌍의 동일한 nn). 이것은 나에게 ** 2 출력 f (x_i, x_j)를 제공 한 다음 평균을 내거나 최대 값을 취하고 결과에 주석 nn을 적용합니다.
Josef Ondrej

이것이 내가 지금까지 생각해 낸 것입니다 : github.com/josefondrej/Symmetric-Layers
Josef Ondrej


3

Keras를 사용하여 Permutational Layer를 구현했습니다. https://github.com/off99555/superkeras/blob/master/permutational_layer.py

PermutationalModule함수를 호출하여 사용할 수 있습니다.

이 백서에 따라 구현 : https://arxiv.org/pdf/1612.04530.pdf

아이디어는 N 입력 에서 N ^ 2 쌍의 모든 쌍을 비교 하고 공유 가중치가있는 모델을 사용한 다음 N 입력 에서 풀링 기능을 N 번 사용하는 것 입니다. 풀링을 다시 사용할 수 있지만 논문에서는 다른 풀링에 대해서는 언급하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.