뉴럴 네트워크 기본개념…..

  • #3846388
    3 76.***.204.204 940

    유튜브 몇개 봤는데 개념 설명을 제대로 직관적으로 설명하는게 별로 없고 천편 일률적인 비유네요. 파라미터 가 786개에서 히든 파라미터를 거쳐 10개로 줄어들었다…그리고 리니어 매트릭스가 이용되었다…그냥 이정도… 3B1B 도 제대로 설명이 안되어있어요. NMIT 제대로 설명하는거 없나요

    좀더 직관적으로 매트릭스공식과 최종 파라미터가 왜 그렇게 연결되는지 제대로 설명한 동영상이나 웹페이지 있나요?

    • 아이구 두야 71.***.87.201

      그런것은 특허이자 기밀사항일껄
      설사 말해줘도 이해하기 쉽지 않을껄
      그분야 연구하는 박사나 기업 연구원들은 알겠지만 일반인들이 알려면 힘들껄:

      뉴럴 네트워크의 매트릭스 공식과 최종 파라미터가 왜 그렇게 연결되는지 직관적으로 설명하기 위해서는 먼저 뉴럴 네트워크의 기본 개념을 이해해야 합니다. 뉴럴 네트워크는 인간의 뇌를 모방한 인공 신경망으로, 입력과 출력 사이의 관계를 학습하여 특정 작업을 수행하도록 설계된 알고리즘입니다. 뉴럴 네트워크의 기본 구성 요소는 다음과 같습니다.

      입력층: 입력 데이터를 받아들이는 층입니다.
      은닉층: 입력 데이터를 처리하여 출력층으로 전달하는 층입니다.
      출력층: 처리된 데이터를 출력하는 층입니다.
      각 층은 뉴런으로 구성되어 있으며, 뉴런은 다음과 같이 작동합니다.

      입력 뉴런: 입력 데이터를 받아들입니다.
      은닉 뉴런: 입력 뉴런으로부터 받은 데이터를 가중치와 편향이라는 값을 사용하여 처리합니다.
      출력 뉴런: 은닉 뉴런으로부터 받은 데이터를 가중치와 편향이라는 값을 사용하여 처리한 후 출력 데이터를 생성합니다.
      가중치와 편향은 뉴럴 네트워크의 학습 과정에서 최적화되는 값입니다. 가중치는 입력 뉴런으로부터 받은 데이터의 중요도를 조절하는 역할을 하고, 편향은 뉴런의 출력값을 조절하는 역할을 합니다.

      이러한 뉴럴 네트워크의 작동 원리를 바탕으로 매트릭스 공식과 최종 파라미터가 왜 그렇게 연결되는지 이해할 수 있습니다.

      매트릭스 공식

      뉴럴 네트워크의 매트릭스 공식은 다음과 같습니다.

      y = Wx + b
      여기서,

      y는 출력 데이터
      x는 입력 데이터
      W는 가중치 행렬
      b는 편향 벡터
      입니다.

      이 공식을 이해하기 위해서는 먼저 행렬 연산에 대한 기본 개념을 이해해야 합니다. 행렬 연산은 행렬과 행렬, 또는 행렬과 벡터 간의 연산을 의미합니다.

      행렬과 행렬의 곱셈은 다음과 같이 계산됩니다.

      A * B = (aij * bij)
      여기서,

      A는 행렬 A
      B는 행렬 B
      aij는 행렬 A의 i행 j열 요소
      bij는 행렬 B의 i행 j열 요소
      입니다.

      행렬과 벡터의 곱셈은 다음과 같이 계산됩니다.

      A * x = (aij * xi)
      여기서,

      A는 행렬 A
      x는 벡터 x
      aij는 행렬 A의 i행 j열 요소
      xi는 벡터 x의 i번째 요소
      입니다.

      위의 매트릭스 공식을 이해하려면, x를 입력 데이터로, y를 출력 데이터로, W를 가중치 행렬로, b를 편향 벡터로 생각하면 됩니다.

      즉, 매트릭스 공식은 입력 데이터 x를 가중치 행렬 W와 곱한 후 편향 벡터 b를 더하여 출력 데이터 y를 생성하는 과정을 나타냅니다.

      최종 파라미터

      뉴럴 네트워크의 최종 파라미터는 가중치 행렬 W의 요소와 편향 벡터 b의 요소를 모두 포함합니다.

      가중치 행렬 W의 요소는 입력 데이터의 중요도를 조절하는 역할을 하고, 편향 벡터 b의 요소는 뉴런의 출력값을 조절하는 역할을 합니다. 따라서, 가중치 행렬 W와 편향 벡터 b의 요소는 모두 뉴럴 네트워크의 학습 과정에서 최적화되어야 합니다.

      최종 파라미터가 786개에서 히든 파라미터를 거쳐 10개로 줄어드는 경우는 다음과 같이 설명할 수 있습니다.

      입력 데이터의 차원이 786인 경우, 가중치 행렬 W의 크기는 786 x 10이 됩니다.
      히든 층의 차원이 100인 경우, 가

      • 3 76.***.204.204

        챗지피티 답변 같은데…이 정도 설명는 유튜브에도 있어요. y = Wx + b 이 매트랙스 공식이 왜 유효하냐….일단은 여기가 가장 주요한 의문이지요. 사실 모델과 관측치를 가지고 설명을 해서 이미 모델이 있고 그 모텔을 구현하는게 저 형태의 매트릭스이고 각 관측치로 웨이팅이나 바이어스 파라미터를 구하는게 목적이다….이런 형태의 설명이 모두 생략되어서 그 설명을 찾는겁니다. 말하자면 고양이패턴을 모델로 할때 절대적 모델이 먼저 있어야 하는데 그걸 최종적 10개 파라미터와 어떤 관련이 있느냐…말하자면 모델이 뭐냐? 이게 설명이 없어서요. 숫자로 비유하자면 최종적인 10개의 파라미터의 모델이 의미하는 패턴이 어떻게 모델링된걸까 하는 의문이 들어서요. 10이 꼭 될 필요도 없을거같고 차라리 9가 더 적당할거 같기도 한데 그런 설명을 찾고 싶어서요. 어떤 숫자패턴이 주어지면 그걸 주어진 절대적 패턴에 비교를 해야 되쟎아요.

        이런건 기밀 사항이 될수가 없어요. 그냥 사이언스의 기본 이론이기 때문에. 어딘가 퍼블리쉬된게 있을텐데 그것들은 이해하기 어렵고 누군가가 쉽게 설명해준 강의가 있을텐데 앤드류 엉같은 긴 강좌 말구여.

        • 아이구 두야 71.***.87.201

          y = Wx + b 이 매트릭스 공식이 유효한 이유는 다음과 같습니다.

          y는 Wx + b의 선형 함수입니다. 즉, y는 Wx와 b의 선형 조합입니다.
          Wx는 입력 데이터의 가중치입니다. 즉, Wx는 입력 데이터를 특정 방식으로 변환합니다.
          b는 편향입니다. 즉, b는 Wx의 출력에 추가되는 고정된 값입니다.
          이러한 의미에서, y = Wx + b는 입력 데이터를 사용하여 출력을 예측하는 선형 모델입니다.

          고양이 패턴을 모델링하는 경우, Wx는 고양이 패턴의 특징을 포착하는 가중치 행렬입니다. b는 고양이 패턴의 평균을 나타내는 편향입니다.

          예를 들어, 고양이 패턴의 특징으로 다음과 같은 것들을 고려할 수 있습니다.

          눈의 개수
          코의 위치
          귀의 모양
          꼬리의 길이
          이러한 특징을 각 숫자로 표현하고, Wx는 이러한 숫자들을 특정 방식으로 변환하는 가중치 행렬이 됩니다. b는 고양이 패턴의 평균을 나타내는 편향이 됩니다.

          이렇게 Wx와 b를 설정하면, y = Wx + b는 고양이 패턴을 예측하는 선형 모델이 됩니다.

          10개의 파라미터가 필요한 이유는 고양이 패턴을 표현하기에 충분한 특징을 포착할 수 있는 가중치 행렬을 만들기 때문입니다. 9개의 파라미터만으로는 고양이 패턴을 정확하게 예측할 수 없을 수도 있습니다.

          즉, y = Wx + b는 고양이 패턴을 포함한 모든 패턴을 모델링할 수 있는 선형 모델입니다. Wx와 b의 값을 설정하여 원하는 패턴을 모델링할 수 있습니다.

          앤드류 엉같은 긴 강좌 말고 쉽게 설명해준 강의는 다음과 같은 것들이 있습니다.

          3Blue1Brown의 “Neural Networks”: https://www.youtube.com/watch?v=aircAruvnKk
          3Blue1Brown의 “Linear Regression”
          3Blue1Brown의 “Multivariable Linear Regression”
          이러한 강의들은 선형 모델의 기본 개념을 쉽게 설명해줍니다.

          • 3 76.***.204.204

            이해를 도와주려는 노력은 고마운데 첫계단을 올라야 하는 진짜 초보자에게는 님같은 설명방식은 전혀 직관에 도움이 안되네요. 3Blue1Brown 동영상도 별 도움안되고요. https://www.youtube.com/watch?v=GvQwE2OhL8I 이 동영상이 쪼금 더 나은거 같네요. 이거보니 쪼금 감이 잡혀요 뭘 할려고 저런 장난을 치는것인지. 9개를 이야기한것은 숫자의 경우에 9개가 10개보다 더 적당할거 같아서요. 고양이 경우는 아니고요.

            • 아이구 두야 71.***.87.201

              네, 이해합니다. 선형 모델의 기본 개념을 이해하기 위해서는 어느 정도의 수학적 배경이 필요합니다. 따라서, 초보자에게는 직관적인 설명이 필요합니다.

              링크하신 동영상은 선형 모델을 이해하는 데 도움이 될 수 있는 좋은 동영상입니다. 특히, 3D 그래픽을 사용하여 선형 모델의 개념을 시각적으로 보여줍니다.

              숫자의 경우에 9개가 10개보다 더 적당할 수 있다는 말씀은 이해합니다. 숫자의 경우, 9개의 파라미터만으로도 충분히 많은 특징을 포착할 수 있을 수 있습니다. 예를 들어, 숫자의 경우 다음과 같은 특징을 고려할 수 있습니다.

              숫자의 왼쪽 꼭짓점의 x좌표
              숫자의 왼쪽 꼭짓점의 y좌표
              숫자의 오른쪽 꼭짓점의 x좌표
              숫자의 오른쪽 꼭짓점의 y좌표
              숫자의 윗부분의 x좌표
              숫자의 윗부분의 y좌표
              숫자의 아랫부분의 x좌표
              숫자의 아랫부분의 y좌표
              이러한 특징을 각 숫자로 표현하면, 9개의 파라미터만으로도 충분히 숫자를 표현할 수 있습니다.

              물론, 고양이 패턴의 경우는 9개의 파라미터만으로는 충분하지 않을 수 있습니다. 고양이 패턴은 숫자보다 훨씬 복잡한 패턴이기 때문입니다. 고양이 패턴을 모델링하려면 10개의 파라미터 이상이 필요할 수 있습니다.

              결국, 선형 모델의 파라미터 수는 모델링하려는 데이터의 복잡성에 따라 결정됩니다. 데이터가 복잡할수록 더 많은 파라미터가 필요합니다.

            • 3 76.***.204.204

              파라미터의 갯수와 클래스의 갯수와는 의미가 다르군요.
              파라미터는 9개나 6(이건 이미 디지털 시계디스플레이에서 쓰는 방법)개가 적당할지는 몰라도
              보통 그래프 패턴으로 나타낼때 오른쪽 끝에 y변수로 표현되는 아웃풋 노드들은 사실은 클래스 갯수를 의미하네요. 그래서 숫자의 클래스가 10개가 되는거네요. 0에서 9까지. 아참 그러고 보니 여기서 9개나 6개를 이야기 하는건 아웃풋레이어 노드갯수가 아니라 히든 레이어들의 노드갯수로 정해서 쓰면 좋겠네요. 임의로 정하기보다는 히든 레이어경우에는 10보다는 6이나 9가 나을듯해요. 아닌가? 6보다 크면 아무수나 상관없나?

              고양이 경우는 아마 최종적으로 고양이이다, 고양이가 아니다 라는 2개의 클래스로 아웃풋 레이어가 되든지 고양이의 품종의 갯수로 클래스 갯수를 정하겠네요. 말슴하신대로 히든 레이어안의 노드갯수들은 상당히 많은수가 필요하겟네요. 다시 3Blue1Brown 를 보니 아까보다는 이제 좀 더 이해가 되네요.

              어쨋건 이거 진짜 첫게단 부터 이해하기 쉽지 않네요. 뉴럴 네트워크가 뭔지 전혀 알려고 안할때는 그냥 공식만 가져다 코드만 만들어서 쓰는 이론적 배경운 아주 쉬운걸로 생각햇는데 내 생각이 틀렷군요.

    • 3 76.***.204.204

      그동안 용어는 많이 들었어도 이해하려고 시도해보는건 처음인데 아주 간단한 이론일줄 알았는데 생각보다 뉴럴 네트워크 이론이 초보자들에게 이해하기 쉽지 않을것임을 깨닫는다. 그 이유는
      1. 리니어 시스템에 대한 모델이 아니라는것이다. 완전 사고의 전환이 필요해지네
      2. 투루쓰 에 대한 모델이 컨티뉴어스한 수학적 모델을 쓰는게 아니라는 것이다. 모든걸 디스크리트한 숫자들 가지고 장난을 치기 때문에 그동안 컨티뉴어스 함수가지고 물리적인 함수모델가지고 생각을 해온 사람들에게 장벽이 된다. 이건 무슨 힘과 에너지 등등의 물리적 시스템을 설명하기 위한 공식으로된 모델을 찾는것과는 전혀 별개의 접근이 필요하다. 순전히 그냥 웨이팅과 바이어스의 수많은 디스크리트한 숫자의 조합을 가지고 장난치는게 모델이다.
      3. 물리계 현상의 모델은 우리가 수학적 해석은 못해도 답에 대한 직관적인 결과를 물리계가 제공해주어서 …예를 들어 에너지보존 법칙 엔트로피 법칙 등등의 직관이 유영한데 정보이론에 대한건 도대체 직관이 어떻게 이용될지 그게 가능한지 모르겠네. 정보에도 무슨 근본적 법칙이 있을거 아냐…에너지 보존법칙이나 그런거에 상응하는…
      4. 결국엔 모든게 그래프 이론과 귀결될거 같네. 결국 모든게 노드와 경로의 웨이트…. 아하 최소경로의 법칙이 성립하는거 보면 에너지법칙과 유사한 그런게 있긴 있구나. 결국 마스터키는 그래프 이론에 있나?

    • w 121.***.21.16

      서울대 데이터 대학원 교수가 강의하는 영상이 있으니 한번 보세요.

      님의 질문은 어디서 부터 대답해야할지 모르겠으나, 조금 공부해보시면 스스로 이해할것 같네요.

      • 3 76.***.204.204

        궁금한 3강은 없군요.

        • w 210.***.50.14

          찾아보니 다른 학기의 강의에는 3강이 있네요.

    • . 98.***.134.123

      image classification은 convolutional neural network를 씁니다.
      training이 끝난 신경망의 weights을 보면 앞쪽 layer에서 뒤쪽으로 갈수록 더 구체적인 feature를 detect하도록 되어있습니다.
      근데 이게 어떻게 training이 될줄 알고 이렇게 신경망을 구성한거냐 하면 그냥 어디선가 inspire받아서 한번 해보니까 되네? 해서 써먹는겁니다.
      CNN history
      https://medium.com/appyhigh-technology-blog/convolutional-neural-networks-a-brief-history-of-their-evolution-ee3405568597

    • 씨바 73.***.90.165

      그러니까 쉽게설명하면
      a + b = c
      c = ba
      씨 = 바
      씨바

    • 3 76.***.204.204

      3강 링크 첮아주셔서 고마워요. 인공지능 아버지 제프리 힌튼의 강의 보다 쉽게 설명해주네요. ( https://www.youtube.com/watch?v=0T57_yjjB58&list=PLoRl3Ht4JOcdU872GhiYWf6jwrk_SNhz9&index=8 근데 이것도 보다보니 서론이 너무길고 지루했는데 갈수록 진짜 재밌어지네) 와! 레이어 하나 더 늘리고 지그모이드 함수 처리해주니까 신세계가 열린거군요.

      리니어 근사만 가능했던 칼만 필터링은 이런 고려로 어떻게 변화하는지 공부해봐야겠네요. 이런 자료도 있나요? 그전에는 넌리니어한 시스템들을 어떤식으로 모델화했었는지 궁금해지네요. 지그모이드함수를 첨가하고 레이어를 첨가함으로써 그게 또 쉽게 가능해진거군요.

    • 3 76.***.204.204

      몇개 동영상을 본후 나 상상해 본다.
      1. 뉴럴 네트위크의 코스트 함수 정의나 백프로퍼게이션 하는 방법은 새로운 이론이 아니고 원래 다 있었던 방법인데 갑자기 이 뉴런 네트워크 이론이 뜨게 된 이유에는 히든 레이어를 첨가시키고 시그모이드 함수를 첨가시켜 넌리니어리티를 고려해주어서다.
      2. 그러나 히든 레이어를 첨가시키면서 논리연산이 가능해지고 미분가능한 시그모이드 함수를 첨가시켜줌으로써 연속성을 확보해서 백포로퍼게이션이 가능해졌지만 히든레이어에 대한 정확한 이해가 아직 없고 사실은 연속함수인 시그모이드 함수가 오히려 백프로퍼게이션 알게리듬 게선을 방해하는 요소가 될수 있을거 같다. 왜냐하면 계속해서 사람들이 미분에 의존하는 알고리듬에 속박되어 있기 때문이다. 세상은 미분에 얽매이기엔 너무나 다양하다. 미분을 벗어나야 문제가 더 쉽게 풀릴수 있을것이다.
      3. 결국 이틀전 내가 뉴런 네트워크가 뭔지 알려고 동영상들 보기 전에 내가 가졌던 선입견, 즉 이 이론이 아마 완전 디스크리트하고 디지타이지든 숫자만으로 알고리듬이 이루어졌나보다 하던 환상이 여지없이 다 깨져버렸다. 그냥 여전히 미분에 의존하고 어쩌다가 히든 레이어를 집어넣어주니 파라미터가 엄청나게 늘어나면서 논리적 자유만 좀 얻은 그런 알고리듬일뿐.
      4. 그럼 더 엄청난 개선의 여지가 있지 않을까? 미분에 의존하는 백프로퍼게이션을 극복해야 한다. 왜 코스트함수가 항상 연속적함수로만 정의되어야 한는가? 히든 레이어가 왜 걔층적으로만 모델해야 한다고 생각하는가?
      5. 우리 두뇌는 집중할것에 집중할것을 금방 알아 차린다. 우리 두뇌는 앉아서 미분이나 하고 앉아있는 그런 미분에 의존하는 방식이 아니기 때문이다. 집중할것에 집중할것을 알아 차리는 알고리듬. 이걸 찾아야 한다. 계층적 히든 레이어보다는 그냥 랜덤하게 아무렇게나 배열된 히든 노드 그래프들을 가지고 시작해야 한다. 퍼셉트론이 접근방식의 기본이 되는 것은 여전히 유효하다. 그리고 집중된 노드를 찾아가서 더 깊게 그 지역을 모델링 해야 한다. 필요한 방법들은 이미 인간들이 다 가지고 있다고 본다. 즉 퍼즐조각들은 이미 거의 다 가지고 있다고본다. 미분방법으로 골짜기와 웅덩이를 찾는 방법은 너무 문제가 많다. 시스템이 조금만 복잡해지더라도 완전 미궁을 헤메게 될것이다. 이런 상태로 인공지능이 특이점을 갖게 된다면 인공지능은 에너지에 굶주려 모든 지구 자원을 다 먹어치우며 지구를 파괴하고 자신도 파괴될것이다.
      6. 배고프다. 마렵다.
      7. 현재의 인공지능은 인간을 파괴할 뿐이다. 배가 너무 고프면 에너지에 굶주리면 파괴적이 된다. 사람도 마찬가지다. 돈떨어지고 음식떨어지면 파괴적이 된다. 어떤 사람은 남에게 파괴적이되고 어떤 사람은 자신에게 파괴적이 되는게 다를뿐이다. 배고프고 돈에 마리고 에너지에 굶주리지 않는(풍요해서가 아니라 있으나 마나 할정도로 적게 써서) 그런 시스템이 되어야 서로가 평온해진다. 현재의 인공지능은 에너지에 너무 굶주려 있다. 이런 멍청한 알고리듬의 태생의 인공지능은 그리디해야 생존가능하기 때문에 파괴성을 지향할수밖에 없다. 특이점을 지난 인공지능에게서 지혜를 기대하지 말라.

    • 3 76.***.204.204

      그나저나 에이아이 관련 이론/코딩 유튜브 영상들 보고 무척 많이 놀랐다. 여러 코딩이나 배경지식에 대한 유튜브 클릭수가 쉽게 밀리언들이 다 넘어가고 있는걸 보니 궁금하다. 배우고 싶은 사람이 저렇게 많은 거야? 예를 들어 파이토치나 이런 동영상들은 분명히 그냥 일반 지식을 전달하는 유튜브 영상들은 아닌데….. 와우. 난 오늘 처음 클릭해보는건데 ㅋㅋㅋ 세상 참 빠르게 변한다. 그러고보니 챗지피티 영향력이 엄청난거구나.