4

AI 수업의 과제 중 하나에 대해 우리는 위도 로우 호프 델타 규칙의 퍼셉트론 학습 구현을 작성해야했습니다. 나는 자바에서이 구현을 코딩했습니다 : 나는 데 https://github.com/dmcquillan314/CS440-Homework/tree/master/CS440-HW2-1퍼셉트론 학습 - 가장 중요한 기능

문제가 퍼셉트론의 창조되지 않습니다 :

다음 GitHub의 링크는 프로젝트가 포함되어 있습니다. 그것은 잘 작동합니다.

퍼셉트론을 교육 한 후에 나는 분류되지 않은 데이터 세트를 퍼셉트론에 적용하여 각 입력 벡터의 분류를 학습했습니다. 이것도 괜찮 았어.

내 문제는 입력의 어떤 기능이 가장 중요한지를 파악하는 것과 관련이 있습니다.

예를 들어, 각 입력 벡터 내에서 설정된 기능이 컬러, 자동차 모델 및 자동차 제조업체 인 경우 어떤 기능이 가장 중요한지를 분류하려고했습니다. 어떻게 그렇게 할 것인가.

이 사실을 처음으로 알게되면, 상관 계수를 계산할 때 각 입력에 대한 해당 지형지 물의 값과 생성되는 분류 벡터를 계산할 수있었습니다. 그러나 이것은 잘못된 가정으로 판명되었습니다.

가장 중요한 기능을 배울 수있는 다른 방법이 있습니까?

EDIT

샘플 중량 벡터 :

(-752, 4771, 17,714, 762, 6, 676, 3060, -2004, 5459, 9591.299, 3,832, 14,963, 20,912)

샘플 입력 벡터 :

(55, 1, 2, 130, 262, 0, 0, 155, 0, 0, 1, 0, 3, 0)

(59, 1, 3, 126, 218, 1,0 (45, 1, 2, 128, 308, 0, 2, 170, 0, 1, 0, 3, 0)

(59, 1, 4, 110, 239, 0, 2, 142, 1, 1.2, 2, 1, 7, 1)

마지막 요소는 분류입니다.

답변을 찾으면 여기에 답변을 게시합니다. 지금까지 나는 강사가 준 대답이 정확하지 않다고 믿습니다.

+0

당신이 perceptron에 대해 많이 알고있는 것 같아요, 당신은 [이 질문에 관한] 통찰력을 가지고 있습니까 (http://stackoverflow.com/questions/28577662/application-of-delta-rule-to-feature-vectors- 퍼셉트론) –

답변

1

이것은 원래 생각했던 것보다 훨씬 간단합니다. 다음 통화/프로세스이다

다음과 같은 입력 벡터들의 집합이 주어 :

[1,0,1,0], [0,1,0,1]

데이터는 분산을 최소화하기 위해 이미 0과 1 사이로 제한됩니다. 그러나 내 데이터의 경우 좀 더 다음과 같은 것이있다 :

가 [0,145,0,132], [0,176,0,140]

이 훨씬 크게 몇 가지 입력 기능의 분산을 야기하고 당신은 것 따라서 기능 중요성의 지표로 가중치 벡터를 사용할 수 없습니다. 따라서 가중치 벡터를 중요도 지표로 사용하려면 먼저 최대 값으로 나누어 데이터를 표준화하십시오. [0,176,0,140]

이것은 일정한 특징 벡터의 세트를 초래하고 또한 중요 기능의 지표 인 가중치 벡터 초래 : 될 상기 세트의

.

3

학습 된 모델이 기능 f에 의존하는 정도를 계산하여 기능의 중요성을 파악합니다.

퍼셉트론은 단순한 피드 포워드 신경망이고, 신경망 (실제 값의 비선형 함수)의 경우 종속성은 f에 대한 출력 함수의 편미분에 해당합니다.

피쳐의 상대적인 중요성은 훈련 된 퍼셉트론의 평균 절대 중량에 비례합니다. 이것은 일반적으로 신경 네트워크에 대해 항상 사실 인 것은 아닙니다. 예를 들어, 이것은 다중 레이어 퍼셉트론에 대해 사실 일 필요가 없습니다.

자세한 내용은 여기 (정확하게 공식을 입력하면 표기법이 엉망이됩니다), sections 2 and 3 of this paper을보십시오. 나는 방정식 (8) (3 절)이 당신이 찾고있는 것이라고 믿습니다.

점수는 여러 명의 학습자에 대한 합계입니다. 너의 단층 퍼셉트론 경우, 학습 기능은 하나의 웨이트 벡터

그리고, 평균 = w

(WNW1, W2 ... 께)하다 절대 중량 처음에 언급 한 것은 단순히 절대 무게입니다 | wi | i 번째 특징. 이것은 기능의 중요성을 순위 짓는 것은 너무 단순한 척도로 보입니다. 하지만 ... 그것에 대해 생각하면 n 차원 입력 xw으로 변환됩니다. x (벡터 내적 생성물). 즉, i - 번째 가중치 wi은 벡터 공간의 한 차원을 따라 입력이 얼마나 바뀌는 지 완전히 제어합니다.

그런데 대부분의 (모든 것이 아닐지라도) 분류 자에서, 특징 무게는 그 중요성의 척도입니다. 대부분의 다른 분류 자에 대해 더 복잡한 방식으로 가중치가 계산된다는 것입니다.

+0

종이를 읽은 후에 가장 중요한 특징을 찾지 못하는 것 같습니다. 그것은 각 기능에 대한 중요성의 사용을 허용하는 것으로 보인다. 이것이 틀렸다면 자세히 설명해 주시겠습니까? – dmcqu314

+0

그들은 다중 레이어 퍼셉트론의 첫 번째 레이어에서 초기 가중치를 바이어스하기 위해 기능 중요성을 사용합니다. 그러나 귀하의 경우에는 이미 학습 된 단일 레이어 퍼셉트론이 있습니다. 따라서 무게가 있습니다. 이 가중치를 사용하여 값을 계산할 수 있습니다. 당신의 퍼셉트론에 더 이상 레이어가 없으므로 더 이상 할 일이 없습니다. –

+0

나는 트레이닝에서 포스트까지 결과 웨이트 벡터를 추가했습니다. 이 방정식의 부분이 무엇인지 이해하려고 노력하고 있습니다. 나는 w가 분명히 가중치 벡터라는 것을 알고 있습니다. 그러나 L은 학습자이고이 경우에는 단 하나의 학습자 만 있다고합니다. 따라서, 본질적으로 무게 벡터 인 하나의 합계 만있을 것이라고 나는 믿는다. 가장 중요한 기능은 무엇입니까? 나는 그것이 내가 약간 잃어버린 곳이라고 생각한다. – dmcqu314