신경 네트워크의 작업 원리

교학 이념


나는 이미 신경 네트워크에 관한 강좌/블로그 게시물이 많다는 것을 알고 있다. (내가 가장 좋아하는 일부 게시물은 유튜브의 3B1B 시리즈를 포함한다)
그러나 나는 실천에서 배우는 것을 대대적으로 제창한다.그래서 이 일련의 정보는 당신들에게 한 무더기의 정보를 보여주는 것이 아니라,
그러나 사실은 우리가 매 문장에서 언급한 일을 실현해 달라는 것이다.

신경 네트워크 소개


인공신경망(신경망으로 약칭)의 영감은 생물신경망에서 나온다.그런데 저는 생물 수업을 아직 안 해봤어요.
고등학교 때부터 나는 생물신경망이 어떻게 작동하는지 몰랐다.) 그러나 나는 그것이 이렇게 보일 것이라고 내기를 걸었다.

본 강좌에서 우리는 인공신경 네트워크의 기본 구조 블록, 즉 감지기를 소개할 것이다.

가설 수학 지식


4
  • 함수
  • 좌표 형상

    센서


    감지기와 그 학습 규칙은 더 이상 유행하지 않지만, 그것은 모든 작업 원리를 이해하는 좋은 시작이다.
    감지의 목표는 점집을 분류하는 것이다.

    감지기의 작업 원리


    정의: 감지기는 여러 개의 입력을 받아들여 출력을 만드는 함수입니다.

    공식:

    그 중에서 w는 권중이고 f는 활성화 함수(이하 서술), x는 입력이고 y는 출력이다.
    이것은 기본적으로 하나의 다항식을 활성화 함수라는 함수에 넣는 것이다.
    감지기의 목표는 점집을 분류하는 것이다.

    감지기 권중과 분류


    권중의 중요성을 이해하기 위해서는 두 개의 입력만 있는 상황을 고려하는 것이 매우 유용하다.
    입력에 가중치를 곱하고 화합을 구하는 부분만 고려하면 다음과 같은 결과를 얻을 수 있습니다.

    방정식은 다음과 같은 선형 방정식과 매우 비슷합니다.

    예.


    아래의 도표를 고려하여 우리는 A점과 B점을 분류하고 싶다(즉 그것들을 분리하는 방법을 찾는 것이다).

    그림에서 이 선은 등식이 있다

    시각적으로 보면 이 선은 두 점을 분리하는 것이 분명하다.다음은 수학 해석이다.
    좌표 형상에 따라 선 "위"또는 "왼쪽"의 모든 점(예: 점 A)이 충족된다는 것을 알 수 있습니다.

    선의 아래쪽 또는 오른쪽을 가리키는 모든 점(예: B점)은 충족됩니다.

    이 직선을 통해 우리는 점 A와 점 B를 두 종류로 나누는 데 성공했다.
    그러나 이것은 시각적으로만 효과가 있고 수학적으로는 아직 안 된다.그것이 수학적으로 작용하도록 하기 위해서 우리는 함수를 활성화해야 한다.

    무게의 중요성


    주의해야 할 것은 만약에 권중이 다르면 우리는 점 A와 점 B를 분류할 수 없을 수도 있다는 것이다. 선은 바로 이런 예이다.
    4 가로(0,0) 가로줄입니다.
    그래서 우리가 어떻게 정확한 분류점의 중요성을 찾을 수 있는지 물어볼 것이 있다.답은 감지기를 통해 배우는 것이다. 우리는 다음 글에서 이 점을 소개할 것이다.

    활성화 함수


    더 흔히 볼 수 있는 것은, 우리는 어떤 감지기가 활성화되었는지 표시하기 위해 0에서 1의 범위 내에서만 출력하기를 원한다.
    그래서 우리는 이 점을 위해 활성화 함수라는 함수가 필요하다.
    이 점을 실현하는 간단한 방법은 헤비사이드 함수를 사용하여 모든 음수를 0으로 바꾸고 모든 정수(0 포함)를 1로 바꾸는 것이다.
    우리의 예로 돌아가면 A점에 대해 만족한다

    따라서 헤비사이드 함수에 넣으면 1이 출력됩니다.유사한 방법으로 B를 heaviside 함수에 넣으면 0을 출력합니다.
    따라서 우리는 수학적으로 A점과 B점을 정확하게 분류했다.

    총결산


    권중은 하나의 직선(또는 더 높은 차원의 평면)이 점을 여러 종류로 나눌 수 있는지를 결정한다.한 조의 권중만이 이 점들을 분리할 수 있다.
    활성화 함수는 특정 조건에 부합되는 모든 점을 개괄하는 함수일 뿐이다.

    단련하다


    함수를 작성하고, 좌표를 가져와 목록과 클래스 목록을 만들고, 주어진 권한이 클래스를 분류할 수 있는지 확인합니다.
    def is_correct_weights(coords, classes, w_0, w_1, w_2) -> bool:
        pass
    
    # example from above
    coords = [(-0.7, 2.7), (1.5, 1.1)]
    # classes[i] is class of coords[i]
    classes = [0, 1]
    is_correct_weights(coords, classes, -1, -2, 1) # True
    is_correct_weights(coords, classes, -1, 0, 1) # False
    
    주의: 모든 언어로 진행할 수 있지만, 파이톤을 사용하는 것을 권장합니다. 왜냐하면 우리는 앞으로 파이톤을 더 많이 사용할 것입니다.

    좋은 웹페이지 즐겨찾기