신경망이 무엇을하고 있는지 시각화 / 이해하는 방법?


37

신경망은 복잡한 구조로 인해 종종 "블랙 박스"로 취급됩니다. 모델이 내부에서 어떻게 작동하는지 직관적으로 파악하는 것이 유리하기 때문에 이것은 이상적이지 않습니다. 훈련 된 신경망이 어떻게 작동하는지 시각화하는 방법은 무엇입니까? 다른 방법으로, 네트워크에 대해 쉽게 이해하기 쉬운 설명을 추출 할 수있는 방법은 무엇입니까 (예 :이 숨겨진 노드는 주로 이러한 입력으로 작동합니다)?

저는 주로 2 계층 피드 포워드 네트워크에 관심이 있지만 더 깊은 네트워크를위한 솔루션을 듣고 싶습니다. 입력 데이터는 사실상 시각적이거나 시각적이지 않을 수 있습니다.


1
여기에 좋은 예가 있습니다 : playground.tensorflow.org
nobar

답변:


12

신경망은 때때로 "차등 함수 근 사기"라고합니다. 그래서 당신이 할 수있는 일은 다른 유닛과 관련하여 어떤 유닛을 구별하여 그들의 관계가 무엇인지 확인하는 것입니다.

이를 통해 네트워크 오류가 특정 입력에 미치는 영향을 확인할 수 있습니다.

그런 다음 "수용 필드"라는 것이 있는데, 이것은 숨겨진 장치로가는 연결을 시각화 한 것입니다. 이를 통해 예를 들어 이미지 데이터에 대한 특정 단위의 기능을 쉽게 이해할 수 있습니다. 이것은 더 높은 레벨에서도 가능합니다. 딥 네트워크의 고급 기능 시각화를 참조하십시오 .


13

단일 기능의 모든 가치를 무작위로 부딪 히고 전반적인 체력 기능이 어떻게 저하되는지 기록하여 기능의 중요성을 예측합니다.

따라서 첫 번째 지형지 물 값이 지속적으로 계산되고 조정 되면 첫 번째 지형지 물의 각 교육 예제 값에 를 추가 할 수 있습니다 . 그런 다음 얼마나 감소 하는지 찾으십시오 . 이렇게하면 훈련 데이터에서 기능이 효과적으로 제외되지만 문자 그대로 기능을 삭제하는 것보다 교차 상호 작용이 더 좋습니다.x1,i[0,1]rand(0,1)0.5R2

그런 다음 피트니스 기능 저하로 기능을 평가하고 예쁜 막대 차트를 만드십시오. 문제 영역에 대한 지식이 있으면 가장 중요한 기능 중 적어도 일부가 직무 검사를 통과해야합니다. 또한 이것은 예상치 못한 정보 기능에 놀라게 할 수 있습니다.

이러한 종류의 기능 중요도 테스트는 신경망 및 대형 CART 앙상블을 포함한 모든 블랙 박스 모델에 적용됩니다. 내 경험상, 기능의 중요성은 모델이 실제로하는 일을 이해하는 첫 번째 단계입니다.


1
답변 해주셔서 감사합니다; 이것은 실제로 내가 한 일이며 매우 유용합니다. 이 질문에서는 네트워크 내부를 블랙 박스로 취급하지 않고 네트워크 내부에서 보이는 것을 더 많이 찾고 있습니다.
rm999

2

다음 은 특정 종류의 신경망에 대한 그래픽 직관 입니다. 해당 게시물의 끝에 특정 문제에 대한 시각화를 보여주는 R 코드에 대한 링크가 있습니다. 그 모습은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


1

2011 년 가을 앤드류 응 (Andrew Ng)이 가르치는 Standford에서 무료 온라인 기계 학습 과정을 수강했으며 얼굴 탐지기 인 신경망을 시각화했습니다. 결과는 일반적인 얼굴이었습니다. 나는 이것을 완전성으로 언급하고 싶지만 당신은 이런 종류의 응용에 대해서는 언급하지 않았으므로 세부 사항을 파헤 치지 않을 것입니다. :)


대학은 스탠포드입니다. 웹에서 Andrew Ng 과정을 찾을 수 있습니다. Dick DeVeaux가 신경망에 대해 강의를하는 것을 들었습니다. 신경망의 일부는 실제로 일어나고있는 것을 숨 깁니다. 이것은 비 라이너 분류기의 또 다른 유형이며 다이어그램의 관점에서 보는 대신 대수적으로 수행하는 작업을 작성하여 가장 잘 이해할 수 있습니다. 이 권리를 기억하기를 바랍니다.
Michael Chernick

De Veaux and Ungar, 신경망에 대한 간단한 소개 1997 : "신경망은 요즘 어디에나있는 것 같습니다. 적어도 그들의 광고에서 통계는 모든 소란없이 통계가 할 수있는 모든 것을 할 수 있습니다. 소프트웨어를 구입하십시오. "
데니스

0

아래 언급 된 방법은이 링크 에서 가져온 것입니다 . 자세한 내용은 사이트를 방문하십시오.

임의의 이미지로 시작하십시오. 즉, 임의로 픽셀에 값을 제공하십시오. "다음으로, 우리는이 이미지 x 를 네트워크의 입력으로 사용하여 네트워크 의 중간 어딘가에있는 뉴런 i 에서 x 로 인한 활성화 a_i (x) 를 계산 하여 순방향 패스를 수행합니다. 그리고 우리는 백 패스를 수행합니다. 네트워크의 초기 활성화와 관련하여 a_i (x) 의 기울기를 계산합니다 . 후진 패스의 끝에 기울기 ∂a_i (x) / ∂x가 남거나 각 픽셀의 색상을 뉴런 i 의 활성화를 증가시킵니다 . 우리는 그 구배의 작은 부분 αα를 이미지에 추가함으로써 정확히 그렇게합니다

x ← x + α⋅∂a_i (x) / ∂x

우리는 문제의 뉴런의 높은 활성화를 유발하는 이미지 x '가 될 때까지 계속 반복해서 수행하고 있습니다. "

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