머신 러닝 및 신경망 - 페이지 52

 

Adam 옵티마이저(DL 21)



Adam 옵티마이저(DL 21)

이 강의의 목표는 SGD(Stochastic Gradient Descent)의 약점을 어떻게 해결할 수 있는지 보여주고 신경망 훈련에 널리 사용되는 Adam 옵티마이저를 소개하는 것입니다.

SGD에서는 학습 속도의 곱과 훈련하는 각 배치의 해당 가중치에 대한 손실의 편도함수를 빼서 신경망의 각 가중치를 업데이트합니다. 이 프로세스는 손실의 음의 기울기 방향으로 단계를 수행하여 점진적으로 손실을 최소화합니다. 그러나 SGD는 효과를 방해하는 여러 장애 모드에 직면할 수 있습니다.

이러한 문제를 설명하기 위해 손실 최소화를 목표로 하는 1차원적 예부터 시작합니다. 이 경우 SGD는 기울기의 방향을 따라 내리막길로 이동하여 점차 최소값에 접근합니다. 그러나 SGD가 도움이 되지 않는 시나리오가 있습니다. 그래디언트가 0인 로컬 최소값에 도달하면 해당 지점에서 멀어지지 않습니다. 마찬가지로 기울기도 0인 손실 함수의 고원에 있는 것은 진행을 방해합니다. 서로 다른 배치에 대한 훈련의 확률론이 때때로 지역 최소값 또는 고원을 벗어나는 데 도움이 될 수 있지만 이러한 문제를 완전히 해결하지는 못합니다.

가중치 차원이 여러 개인 신경망 훈련과 같은 고차원 최적화 문제에서는 추가적인 문제가 발생합니다. 로컬 최소값과 최대값이 서로 다른 방향에 있는 안장점으로 인해 기울기가 0이 되어 학습 속도가 느려질 수 있습니다. 또한 서로 다른 차원에서 편도함수 척도의 불일치로 인해 경사하강법 중에 지그재그 동작이 발생하여 오버슈팅 및 느린 수렴이 발생할 수 있습니다.

Adam 옵티마이저는 두 가지 핵심 아이디어로 이러한 문제를 해결합니다. 첫 번째는 모멘텀(momentum)으로, 같은 방향으로 몇 걸음을 내디뎠을 때 같은 방향으로 계속 가는 것을 선호합니다. 모멘텀은 고원을 극복하는 데 도움이 되며 안장 지점에서 알고리즘을 안내할 수 있습니다. 두 번째 아이디어는 편도함수와 제곱 편도함수의 이동 평균을 유지하는 것과 관련이 있습니다. 편미분의 두 번째 모멘트(분산)를 추정하여 각 차원에서 취한 단계를 정규화하여 지그재그 및 오버슈팅을 줄일 수 있습니다.

Adam 업데이트 규칙은 작은 상수(엡실론)와 함께 가중치 업데이트의 편미분 항을 편미분 제곱의 이동 평균(v)을 제곱 편미분(s)의 이동 평균의 제곱근으로 나눈 값으로 대체합니다. 0으로 나누는 것을 피하기 위해. 이 업데이트 규칙은 여러 차원에서 보다 균형 잡힌 단계를 보장하며 신경망 교육에 일반 SGD보다 더 효과적인 것으로 입증되었습니다.

Adam 옵티마이저는 모멘텀을 통합하고 부분 도함수의 이동 평균을 유지하여 SGD의 한계를 해결합니다. 이러한 수정은 지그재그 동작 및 오버슈팅을 줄이면서 로컬 최소값, 고원 및 안장 지점을 탐색하는 옵티마이저의 기능을 향상시킵니다. 결과적으로 Adam은 실제로 신경망 훈련을 위한 인기 있는 선택이 되었습니다.

 

자동 인코더(DL 22)



자동 인코더(DL 22)

많은 딥 러닝 시나리오에서 우리는 종종 하나의 데이터 세트에서 신경망을 훈련하고 해당 네트워크의 숨겨진 계층을 사용하여 다른 문제나 데이터 세트에 적용할 수 있는 데이터를 인코딩한다는 아이디어를 접하게 됩니다. 이 개념을 전이 학습이라고 합니다. 예를 들어 잔여 네트워크를 사용하는 사전 교육에는 나중에 다른 데이터 세트에 적용할 수 있는 유용한 이미지 처리 기술 학습이 포함됩니다. 사전 훈련된 모델의 출력 계층을 버리고 새 작업에 대한 새 출력 계층을 추가함으로써 기본적으로 사전 훈련된 모델에서 생성된 인코딩된 데이터를 처리하는 새로운 네트워크를 만듭니다.

단어 임베딩은 또한 숨겨진 레이어에서 의미 있는 정보를 캡처하는 표현을 학습하는 데이터 인코딩의 목적을 제공합니다. 이 아이디어는 다양한 다른 맥락으로도 확장됩니다. 이 개념을 수용하는 주목할 만한 모델 중 하나는 오토인코더입니다. 오토인코더는 입력 데이터와 출력 데이터가 동일한 감독되지 않은 데이터에 대해 학습됩니다. 선형 회귀를 사용하여 이 회귀 문제를 해결하는 것이 사소해 보일 수 있지만 오토인코더의 주요 목표는 숨겨진 레이어에서 보다 간결한 표현을 학습하는 것입니다.

히든 레이어의 크기를 점진적으로 줄임으로써 오토인코더는 네트워크가 입력 데이터의 압축된 표현을 학습하도록 강제합니다. 네트워크가 이 압축된 표현에서 원래 입력을 일관되게 재현할 수 있으면 데이터 압축을 효과적으로 학습합니다. 예를 들어 입력으로 200x200 픽셀 이미지가 있고 이를 1000개 뉴런의 숨겨진 레이어로 줄인 다음 다시 확장하여 원본 이미지에 가까운 근사치를 재현할 수 있는 경우 압축률은 20:1이 됩니다.

그러나 데이터 압축에만 신경망을 사용하는 것은 더 효율적인 비학습 기반 압축 알고리즘을 사용할 수 있기 때문에 특별히 유용하지 않습니다. 대신, 오토인코더의 가치는 네트워크의 전반부를 사용하여 다른 딥 러닝 작업에서 전이 학습을 위한 표현을 생성하거나 후반부를 디코더로 사용하여 입력 세트에서 데이터 예제를 생성하는 데 있습니다.

전이 학습을 위한 오토인코더의 초기 적용은 딥 러닝 초기에 두드러졌습니다. 그러나 이전 학습에 대한 더 나은 접근 방식이 개발되었습니다. 한편, 데이터 샘플을 생성하기 위해 네트워크의 디코더 부분을 활용하는 것은 다른 많은 딥 러닝 알고리즘의 기초가 되었습니다.

가장 간단한 접근 방식은 숨겨진 계층의 크기를 최소화하여 가능한 최대 압축을 달성하는 것입니다. 이 시나리오에서 디코더에 주어진 합리적인 입력 벡터는 입력 데이터의 분포와 유사한 데이터를 생성해야 합니다. 그러나 은닉층의 최적 크기를 결정하는 것은 어려운 일입니다. 너무 작아서 입력을 정확하게 재현할 수 없거나 너무 커서 원래 데이터 세트와 유사하지 않은 비현실적인 데이터가 생성될 수 있습니다.

이 문제를 해결하기 위해 자동 인코더가 무작위로 샘플링된 벡터와 유사한 표현을 학습하도록 아키텍처를 수정할 수 있습니다. 이 수정은 변형 자동 인코더로 이어집니다. Variational Autoencoder에서 가운데 숨겨진 벡터는 평균과 분산을 나타내는 두 개의 벡터로 대체됩니다. 교육 프로세스에는 정규 분포를 사용하여 임의 벡터를 생성한 다음 숨겨진 인코딩 벡터와 결합하여 디코더에 대한 입력을 생성하는 작업이 포함됩니다. 또한 인코더 네트워크의 손실에는 평균과 분산이 정규 분포에 가깝게 유지되도록 하는 발산 항이 포함됩니다. 이렇게 하면 공간 중앙 주위에 표현을 클러스터링하여 무작위 샘플링에 대해 더 안정적으로 만들 수 있습니다. 따라서 Variational Autoencoder를 사용하면 네트워크에서 학습한 데이터 분포와 매우 유사한 샘플을 생성할 수 있습니다.

요약하면 신경망의 숨겨진 레이어를 데이터 인코딩으로 사용하는 개념은 학습된 확률 분포에서 샘플링하는 기능으로 발전했습니다. 이것은 생성적 적대적 네트워크와 다양하고 흥미로운 데이터의 생성에 대한 문을 열어줍니다.

 

생성적 적대 신경망(DL 23)



생성적 적대 신경망(DL 23)

지난 강의에서는 Generative Modeling 방식의 한 종류인 Variational Autoencoder에 대해 다루었습니다. 오토인코더의 주요 목표는 생성 분포에서 샘플링에 사용할 수 있는 잠재 변수를 학습하는 것입니다. 분포에서 샘플을 생성하는 것에 대해 생각하는 또 다른 방법은 전산 난수 생성기를 통하는 것입니다.

프로그래밍에서 랜덤 라이브러리를 사용하는 경우 랜덤 또는 의사 랜덤 비트 시퀀스를 기반으로 랜덤 분포의 샘플이 생성됩니다. 난수 생성기는 계산을 수행하여 이 비트 시퀀스를 다른 분포의 샘플로 변환합니다. 많은 분포는 이러한 생성기의 균일한 분포 위에 구축됩니다.

생성 모델링에 대한 이 대체 접근 방식에는 생성기 신경망 교육이 포함됩니다. 생성기는 임의 노이즈를 입력으로 사용하여 데이터 분포에서 임의 샘플로 변환합니다. 예를 들어, 데이터 세트가 강아지 이미지로 구성된 경우 목표는 입력 노이즈가 주어진 강아지의 무작위 사진을 생성하도록 신경망을 훈련시키는 것입니다.

생성기 네트워크를 훈련하기 위해 판별기라는 추가 신경망이 사용됩니다. Discriminator는 실제 교육 데이터 또는 생성기 네트워크의 출력에서 입력을 가져와 입력이 진짜인지 가짜인지 결정합니다. Generator 네트워크는 Discriminator를 속일 수 있는 샘플을 생성하는 것을 목표로 하고, Discriminator는 실제 데이터와 가짜 데이터를 구별하는 것을 목표로 합니다. 이것은 두 네트워크 사이에 적대적 관계를 만듭니다.

교육 프로세스에는 판별자를 먼저 교육하여 실제 데이터의 분포를 학습할 수 있도록 합니다. 그런 다음 생성자는 실제 데이터와 유사한 출력을 생성하고 판별자를 속일 수 있도록 훈련됩니다. 학습은 판별자와 생성자를 번갈아 가며 성능을 향상시킵니다.

제너레이터 네트워크의 손실 함수는 판별자의 손실과 반대이거나 완전히 다른 손실 함수일 수 있습니다. 그라디언트는 감별자를 통해 생성기 네트워크로 다시 전파되어 손실 함수를 기반으로 가중치를 업데이트할 수 있습니다. 이를 통해 생성기는 목적 함수를 개선하는 방법을 배울 수 있습니다.

특히 데이터 분포 내의 특정 범주에 대한 샘플을 생성하는 것이 목표인 경우 생성기 및 판별기 네트워크에 대해 서로 다른 손실 함수를 사용할 수 있습니다. 생성기는 판별자를 속여 특정 범주를 출력하는 샘플을 생성하기 위해 레이블과 같은 추가 정보를 조건으로 할 수 있습니다.

적대적 네트워크를 훈련하는 동안 고려해야 할 잠재적 실패 모드가 있습니다. 한 가지 실패 모드는 목적 함수를 최소화하지 않는 실제 데이터 분포에서 단순히 샘플을 생성하는 생성기 네트워크입니다. 과적합은 생성기가 다양한 샘플을 생성하는 대신 실제 데이터를 기억할 수 있기 때문에 또 다른 문제입니다.

과적합을 방지하려면 생성기가 실제 데이터에 노출되는 것을 제한하고 기억할 기회가 너무 많지 않도록 하는 것이 중요합니다. 실제 데이터 세트는 생성기 네트워크에 직접 입력되지 않습니다. Generator는 Discriminator 네트워크의 가중치에 영향을 미칠 때 실제 데이터에서 간접적으로 학습하며, 이는 Generator로 다시 전달되는 손실에 영향을 줍니다.

성공하면 훈련된 생성기 네트워크는 실제 데이터와 유사하지만 그 이상인 샘플을 생성할 수 있습니다. 이것은 다른 신경망 훈련 및 예술적 목적에서 데이터 증대에 유용할 수 있습니다. 예술 및 데이터 증강에 사용되는 생성적 적대적 네트워크의 예가 강의에서 논의되었습니다.

또한 훈련된 생성기 네트워크는 데이터 증강 및 예술을 넘어 다양한 응용 분야에서 유용할 수 있습니다. 이러한 응용 프로그램 중 하나는 다른 중요한 문제를 해결하기 위해 신경망 훈련을 개선하기 위해 합성 데이터를 생성하는 것입니다.

생성기 네트워크를 활용하여 신경망 훈련을 향상시키기 위해 특별히 맞춤화된 데이터 샘플을 생성할 수 있습니다. 예를 들어 클래스가 불균형한 분류 문제가 있는 경우 생성기를 사용하여 과소 표현된 클래스에 대한 추가 샘플을 생성할 수 있습니다. 이는 데이터 세트의 균형을 유지하고 소수 클래스를 학습하는 모델의 기능을 개선하는 데 도움이 될 수 있습니다.

또한 생성적 적대 네트워크는 서로 다른 범주 또는 기능 조합 사이의 공간을 탐색하는 샘플을 생성할 수 있는 잠재력이 있습니다. 예를 들어 개 0.5개, 고양이 0.5개와 같은 특성의 조합을 생성기에 제공하면 개와 고양이의 특성을 모두 결합한 샘플을 생성할 수 있습니다. 서로 다른 범주 또는 기능 간에 보간하는 이 기능은 창의적이고 참신한 출력의 가능성을 열어줍니다.

Generative adversarial network는 다양한 도메인에서 응용 프로그램을 찾았습니다. 컴퓨터 비전 분야에서는 사실적인 이미지를 생성하고 이미지 품질을 향상하며 심지어 딥 페이크를 생성하는 데 사용되었습니다. 자연어 처리에서 그들은 사실적인 텍스트를 생성하고 언어 간 번역을 하고 심지어 챗봇을 만드는 데 사용되었습니다.

생성적 적대 신경망을 훈련시키는 것은 어려운 작업이 될 수 있다는 점에 유의하는 것이 중요합니다. 하이퍼파라미터의 신중한 조정, 적절한 손실 함수 선택, 생성기 네트워크와 판별기 네트워크 간의 트레이드 오프 관리가 필요합니다. 또한 훈련의 안정성을 보장하고 생성기가 제한된 샘플 세트만 생성하는 모드 붕괴를 방지하는 것이 중요한 고려 사항입니다.

이러한 문제에도 불구하고 Generative adversarial network는 사실적이고 다양한 샘플을 생성하는 인상적인 기능을 보여주었습니다. 지속적인 연구는 이러한 네트워크의 성능과 안정성을 더욱 향상시키기 위해 새로운 아키텍처, 손실 함수 및 훈련 기술을 탐구하면서 이 분야를 계속 발전시키고 있습니다.

결론적으로 생성적 적대 신경망은 생성적 모델링을 위한 강력한 프레임워크를 제공합니다. 생성자 및 판별자 네트워크를 적대적 방식으로 훈련함으로써 실제 데이터 분포와 유사한 샘플을 생성하는 방법을 배울 수 있습니다. 이것은 데이터 확대, 창의적인 응용 프로그램 및 다양한 기계 학습 작업을 위한 교육 개선에 흥미로운 가능성을 열어줍니다.

 

AlphaGo 및 AlphaGo Zero(DL 24)



AlphaGo 및 AlphaGo Zero(DL 24)

AlphaGo와 AlphaGo Zero는 Google 자회사 DeepMind에서 개발한 두 개의 이동 에이전트입니다. 이러한 시스템은 딥 컨벌루션 신경망과 자체 재생 강화 학습을 결합하여 이동 재생 알고리즘에서 상당한 발전을 이룹니다. 2016년 AlphaGo는 인간 세계 챔피언을 물리친 최초의 바둑 AI가 되었습니다. 이 비디오에서는 DeepMind가 이러한 시스템을 만든 방법을 살펴보고 AlphaGo 및 AlphaGo Zero에 게시된 연구 논문의 주요 결과에 대해 논의합니다.

바둑은 간단한 규칙을 가진 2인용 게임입니다. 플레이어는 번갈아 가며 보드의 빈 교차로에 검은색과 흰색 돌을 놓습니다. 상대방의 조각으로 둘러싸인 돌 또는 돌 그룹이 캡처되어 보드에서 제거됩니다. 두 플레이어가 모두 패스하면 게임이 종료되며, 주변에 있는 돌과 빈 교차로의 수에 따라 점수가 결정됩니다.

이동을 위한 AI 알고리즘을 개발하려면 앞으로 여러 단계를 계획해야 합니다. Deep Blue와 같은 체스 엔진은 가능한 모든 이동 순서를 고려하고 결과 보드 위치를 평가하여 이를 달성했습니다. 그러나 바둑판 위치의 품질을 평가하는 것은 게임의 복잡성과 더 높은 분기 요인으로 인해 더 어렵습니다. 검색 공간을 유망한 수로 제한하고 보드 위치 품질을 결정하는 것은 AlphaGo가 딥 러닝을 사용하여 해결한 중요한 문제였습니다.

AlphaGo는 보드 상태의 가치와 정책을 추정하기 위해 심층 신경망을 훈련하여 이러한 문제를 해결했습니다. 가치 네트워크는 주어진 상태에서 승리할 확률을 예측하는 반면 정책 네트워크는 이동 품질을 추정합니다. 이러한 모델은 유망한 조치에 대한 관심을 제한하고 품질 추정치를 제공하여 계획 알고리즘을 안내합니다.

AlphaGo와 AlphaGo Zero의 아키텍처는 다릅니다. 원래 AlphaGo는 별도의 정책 및 가치 네트워크를 사용했지만 AlphaGo Zero는 정책 및 가치 출력에 대해 별도의 헤드가 있는 단일 네트워크를 사용했습니다. 두 아키텍처 모두 잔여 블록을 통합하여 중요한 보드 상태 정보를 추출합니다. 알파고의 훈련 데이터에는 아마추어 수준 높은 선수들의 경기가 포함됐지만 알파고 제로는 셀프 플레이 데이터만 사용했다.

가치 네트워크 교육은 보드 상태 표현과 승패 레이블을 사용하여 비교적 간단합니다. 정책 네트워크 교육은 이동 품질을 예측해야 하므로 더 복잡합니다. AlphaGo Zero는 롤아웃 중에 검색 알고리즘에 의해 생성된 이동 품질 추정치에 대해 정책 네트워크를 교육하여 이를 개선했습니다. 시간이 지남에 따라 정책 네트워크는 미래의 여러 단계에서 이동 품질을 추정하는 방법을 배웁니다.

AlphaGo와 AlphaGo Zero는 모두 Monte Carlo Tree Search(MCTS)를 계획 알고리즘으로 사용합니다. MCTS는 롤아웃을 수행하여 이동 시퀀스 값 및 불확실성에 대한 정보를 수집합니다. 검색 알고리즘은 정책 및 가치 네트워크를 사용하여 보드 상태를 평가하고 이동 품질을 추정합니다. 셀프 플레이 강화 학습을 통해 두 시스템 모두 네트워크의 품질 추정치를 개선하고 강력한 바둑 플레이어가 됩니다.

전반적으로 AlphaGo와 AlphaGo Zero의 개발은 바둑 AI의 중요한 이정표를 나타냅니다. 이러한 시스템은 딥 러닝과 강화 학습 및 계획 알고리즘을 결합하여 바둑 게임에서 놀라운 성능과 전략적 플레이를 달성합니다.

 

계산 그래프(DL 25)



계산 그래프(DL 25)

이 강의는 프로그램에서 데이터 흐름과 계산 순서를 시각적으로 표현한 계산 그래프에 중점을 둡니다. 계산 그래프는 일반적으로 신경망에서 순방향 및 역방향 전파를 이해하는 데 사용되지만 모든 프로그램에 적용할 수 있습니다. 신경망의 암시적 연산을 명시적으로 만듦으로써 계산 그래프는 관련된 계산을 보다 명확하게 이해할 수 있도록 합니다.

계산 그래프에서 각 노드는 가중치에 활성화 곱하기, 가중치 입력 합산, 활성화 함수 계산 또는 손실 계산과 같은 계산을 나타냅니다. 노드 간의 연결은 프로그램의 변수 간의 종속성을 나타냅니다. 그래프에서 노드의 미분을 취하는 방법을 알면 신경망에서 정방향 및 역전파 단계를 모두 나타낼 수 있습니다.

신경망에서 경사 하강법에 필요한 편미분을 계산하기 위해 체인 규칙을 사용하여 네트워크를 통해 미분을 역방향으로 전파합니다. 각 단계에서 현재 연산의 도함수에 이전 노드의 도함수를 곱합니다. 노드에 여러 출력이 있는 경우 각 출력에서 나오는 도함수를 합산합니다.

계산 그래프를 사용하면 신경망의 출력을 계산하고 각 가중치에 대한 손실의 편도함수를 계산할 수 있습니다. 그래프의 토폴로지 정렬을 통해 거꾸로 작업하고 도함수를 전파함으로써 네트워크의 모든 매개변수에 대한 부분 도함수를 결정할 수 있습니다.

강의는 또한 중간 값과 도함수를 계산하는 방법을 설명하는 계산 그래프의 예를 제공합니다. 함수를 더 작은 계산으로 나누고 중간 값에 이름을 할당함으로써 계산 그래프를 사용하여 함수 출력과 부분 도함수를 모두 계산할 수 있습니다.

또한 계산 그래프는 스칼라 변수뿐만 아니라 벡터, 행렬 또는 텐서를 나타내는 변수도 처리할 수 있습니다. 활성화 벡터 및 가중치 행렬과 같은 고차원 개체에 해당하는 변수를 사용하여 조밀하게 연결된 신경망 및 기타 복잡한 계산에 계산 그래프를 적용할 수 있습니다.

조밀하게 연결된 신경망에 대한 계산 그래프를 확장하기 위해 활성화 벡터 또는 가중치 행렬에 해당하는 변수를 도입할 수 있습니다. 네트워크의 이 전체 계층에서 활성화 벡터의 이름을 벡터 모자 기호(^)로 표시되는 "a1"로 지정하겠습니다. 마찬가지로 가중치를 행렬 W1로 나타낼 수 있습니다.

이 확장된 그래프에서 레이어의 각 노드에 대한 입력은 활성화 벡터(a1)와 해당 가중치 행렬(W1)의 내적입니다. 이 연산을 행렬 곱으로 나타낼 수 있습니다: a1 * W1.

또한 레이어의 각 노드와 관련된 편향 벡터(b1)를 도입할 수 있습니다. 바이어스 항은 활성화 함수를 적용하기 전에 활성화와 가중치의 내적에 요소별로 추가됩니다.

다음으로 결과 벡터에 활성화 함수(예: 시그모이드 또는 ReLU)를 요소별로 적용합니다. 이 벡터를 "a2"(모자 기호 포함)로 표시하여 다음 레이어의 활성화를 나타냅니다.

신경망의 후속 레이어에 대해 이 프로세스를 반복하여 노드를 에지로 연결하고 그래프를 통해 활성화 및 가중치를 전파할 수 있습니다.

이 확장된 계산 그래프에서 정방향 통과를 계산하기 위해 입력 값(예: 이미지의 픽셀 강도)에서 시작하여 각 노드에서 행렬 곱셈, 요소별 추가 및 활성화 함수를 적용하여 그래프를 통해 전달합니다. 최종 결과물을 얻을 때까지.

역전파의 경우 목표는 네트워크의 각 가중치에 대한 손실 함수의 편도함수를 계산하는 것입니다. 계산 그래프를 확장하면 네트워크를 통해 기울기의 흐름을 역방향으로 추적할 수 있으므로 체인 규칙을 사용하여 이러한 편도함수를 효율적으로 계산할 수 있습니다.

역전파 동안 최종 출력에 대한 손실 함수의 미분으로 시작하여 체인 규칙을 사용하여 그래프를 통해 역전파합니다. 각 노드에서 들어오는 미분을 입력과 관련하여 해당 연산(활성화 함수, 행렬 곱셈 등)의 미분으로 곱합니다.

이 프로세스를 따르면 네트워크의 각 가중치에 대한 그래디언트를 계산할 수 있으므로 그래디언트 디센트 및 변형과 같은 최적화 알고리즘을 사용하여 가중치를 업데이트할 수 있습니다.

요약하면 계산 그래프를 확장하여 조밀하게 연결된 신경망을 나타내면 순방향 및 역방향 전파 단계를 시각화하고 계산할 수 있습니다. 기울기의 효율적인 계산을 가능하게 하고 가중치 업데이트를 통해 네트워크 최적화를 용이하게 합니다.

 

자동 차별화(DL 26)



자동 차별화(DL 26)

역 모드 자동 미분(AD)은 함수의 기울기를 계산하는 데 사용되는 기술입니다. Julia에서 Zygote 라이브러리는 자동 차별화 기능을 제공합니다. Julia에서 대규모 기계 학습 프로젝트를 수행할 때 Zygote 위에 구축된 Flux 딥 러닝 라이브러리가 일반적으로 사용됩니다.

Zygote는 다른 함수와 입력 인수를 사용하는 "그라디언트" 함수를 제공하며 해당 지점에서 기울기를 자동으로 계산합니다. 예를 들어 함수와 입력이 (1, 2, -1)인 경우 Zygote는 그래디언트를 (22, 4, -12)로 계산할 수 있습니다. 이 기능은 편리하지만 Project Zero에서 구현한 것과 유사합니다.

자동 미분의 힘은 더 복잡한 함수에 대한 그래디언트를 계산하는 능력에 있습니다. 예를 들어 피보나치 수열의 n번째 요소를 계산하는 함수를 생각해 봅시다. Zygote의 그래디언트 함수를 사용하여 이 피보나치 함수의 그래디언트를 계산할 수 있습니다. 입력(0, 1, 12)에서 "a"에 대한 편도함수는 89이고 "b"에 대한 편도함수는 144입니다. 그러나 "n"에 대한 편도함수는 연속적이지 않기 때문에 없습니다. 이 함수에서 변수.

Zygote가 그러한 함수에 대한 그래디언트를 계산하는 방법을 이해하기 위해 역 모드 자동 미분을 살펴볼 수 있습니다. 리버스 모드 AD에서는 함수가 실행될 때 계산 그래프가 작성되고 편도함수는 그래프를 통해 역전파됩니다. 이를 달성하기 위해 변수의 숫자 값은 미분 계산을 위한 값과 추가 정보를 모두 저장하는 개체로 대체됩니다.

두 가지 유형의 정보가 이러한 객체에 저장될 수 있습니다. 및 그 값을 계산하는 데 사용되는 함수(역 모드 AD). 딥 러닝의 경우 리버스 모드 AD는 입력(예: 신경망의 가중치 매개변수)보다 출력(일반적으로 하나)의 수에서 더 잘 확장되므로 더 유용합니다.

이러한 역방향 모드 auto-diff 개체를 만들고 함수 평가 중에 계산 그래프를 작성하면 나중에 역전파를 수행할 수 있습니다. 중간 변수는 계산 결과를 저장하고 개체의 부모 가장자리는 그래프의 노드 간 종속성을 나타냅니다. 함수 노드 및 종속성을 포함하는 계산 그래프는 암시적으로 구성됩니다. 각 노드에 체인 규칙을 적용하면 도함수가 그래프를 통해 역방향으로 전파될 수 있습니다.

이 역방향 모드 자동 비교 개체 모음은 해당 값, 부모 및 함수와 함께 일반적으로 그라데이션 테이프에 저장됩니다. 이 접근 방식을 사용하면 구성 요소의 도함수를 알고 있는 한 더 복잡한 중간 계산이 포함된 함수도 구별할 수 있습니다. 이러한 변수의 값은 스칼라, 벡터, 행렬 또는 텐서가 될 수 있으므로 다양한 데이터 유형으로 함수를 구분할 수 있습니다.

요약하면 Julia의 Zygote와 같은 라이브러리에서 지원하는 역 모드 자동 미분을 통해 함수의 기울기를 효율적으로 계산할 수 있습니다. 계산 그래프를 구축하고 이를 통해 미분을 전파함으로써 그래디언트 계산 프로세스를 자동화하여 딥 러닝 및 기타 복잡한 응용 프로그램에 적합하게 만들 수 있습니다.

 

머신 러닝을 위한 Coursera Neural Networks — Geoffrey Hinton - 강의 1.1 — 머신 러닝이 필요한 이유



강의 1.1 — 기계 학습이 필요한 이유 [기계 학습을 위한 신경망]

기계 학습을 위한 신경망에 대한 Coursera 과정에 오신 것을 환영합니다! 이 과정에서 우리는 신경망의 매혹적인 분야와 기계 학습에서의 응용을 탐구할 것입니다. 신경망 학습 알고리즘의 복잡성에 대해 알아보기 전에 잠시 시간을 내어 기계 학습의 중요성과 그 용도에 대해 논의하고 그 기능을 설명하는 몇 가지 예를 제공하겠습니다.

기계 학습은 기존의 프로그래밍 접근 방식으로 해결하기 어려운 복잡한 문제를 해결하는 데 필요합니다. 예를 들어, 다양한 조명 조건과 어수선한 장면에서 다양한 관점에서 3차원 물체를 인식하는 것은 어려운 작업입니다. 복잡성은 우리의 두뇌가 어떻게 그러한 인식을 수행하는지 완전히 이해하지 못하기 때문에 이러한 문제를 해결하기 위해 명시적인 프로그램을 작성하는 것을 어렵게 만든다는 사실에 있습니다. 기본 프로그램을 발견하더라도 효과적으로 구현하기가 매우 복잡할 수 있습니다.

또 다른 예는 사기성 신용 카드 거래를 감지하는 것입니다. 기존의 규칙 기반 시스템은 시간이 지남에 따라 지속적으로 변경되는 수많은 신뢰할 수 없는 규칙을 결합해야 하므로 부정 행위 패턴의 복잡성을 포착하는 데 어려움을 겪고 있습니다. 기계 학습은 주어진 입력에 대해 올바른 출력을 지정하는 많은 예제를 활용하여 대안적인 접근 방식을 제공합니다. 학습 알고리즘은 이러한 예제를 처리하여 작업을 효과적으로 처리하는 프로그램을 생성합니다. 결과 프로그램은 잠재적으로 수백만 개의 가중 숫자를 포함하는 기존의 수작업 프로그램과 다르게 보일 수 있습니다. 그러나 올바르게 구현되면 새로운 사례에 잘 일반화할 수 있고 업데이트된 정보에 대한 재교육을 통해 변화하는 데이터에 적응할 수 있습니다.

기계 학습은 실제 장면의 물체, 얼굴 표정 또는 말과 같은 패턴을 인식하는 데 탁월합니다. 또한 신용 카드 거래의 비정상적인 순서나 원자력 발전소의 비정상적인 센서 판독값과 같은 이상 징후를 식별하는 데에도 강력합니다. 또한 머신 러닝은 주식 가격을 예측하거나 과거 선택 및 다른 사람의 행동을 기반으로 사용자 선호도를 예측하는 것과 같은 예측 작업에서 유용합니다.

이 과정 전반에 걸쳐 손으로 쓴 숫자의 MNIST 데이터베이스를 표준 예제로 사용하여 많은 기계 학습 알고리즘을 설명합니다. 이 데이터베이스는 널리 사용되며 다양한 방법을 효과적으로 비교할 수 있습니다. 이러한 작업을 사용하면 기계 학습의 기본 개념과 원리를 더 잘 이해할 수 있습니다.

이러한 예는 기계 학습 및 신경망의 놀라운 기능 중 일부에 불과합니다. 기술 발전과 쉽게 사용할 수 있는 컴퓨팅 리소스를 통해 복잡한 기계 학습 모델을 효율적으로 교육하고 배포할 수 있습니다. 이러한 모델은 기계 학습으로 달성할 수 있는 범위를 넓히면서 점점 더 복잡해지는 작업을 처리할 수 있는 잠재력을 가지고 있습니다.

이 과정에서는 신경망의 복잡성을 탐구하고 신경망의 아키텍처, 학습 알고리즘 및 실제 구현 기술에 대해 논의합니다. 이 과정을 마치면 신경망에 대한 강력한 기반을 갖추게 되고 이를 다양한 문제에 적용할 수 있게 됩니다.

머신 러닝을 위한 신경망의 세계로 떠나는 흥미진진한 여정에 함께하세요. 지식을 확장하고 기술을 향상하며 이 혁신적인 기술의 잠재력을 발휘할 준비를 하십시오!

Lecture 1.1 — Why do we need machine learning [Neural Networks for Machine Learning]
Lecture 1.1 — Why do we need machine learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For more cool AI stuff, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton ...
 

강의 1.2 — 신경망이란 무엇인가



강의 1.2 — 신경망이란 무엇인가 [머신러닝을 위한 신경망]

이 비디오에서는 이 과정에서 탐구할 인공 신경망의 기반이 되는 뇌의 실제 뉴런에 대해 설명합니다. 대부분의 과정에서 실제 뉴런에 많은 초점을 맞추지는 않겠지만 처음에는 간략한 개요를 제공하고 싶었습니다.

뉴런 네트워크가 계산할 수 있는 방법을 연구해야 하는 몇 가지 이유가 있습니다. 첫째, 뇌의 기능을 이해하는 데 도움이 됩니다. 뇌에 직접 실험을 하는 것은 논리적으로 보이지만 조작을 잘 견디지 못하는 복잡하고 섬세한 기관입니다. 따라서 컴퓨터 시뮬레이션은 경험적 결과를 이해하는 데 필수적입니다.

둘째, 신경망을 연구하면 상대적으로 느린 뉴런의 광대한 네트워크를 통해 계산하는 뇌의 능력에서 영감을 얻은 병렬 계산의 개념을 파악할 수 있습니다. 이러한 병렬 계산 스타일을 이해하면 기존의 직렬 프로세서와 크게 다른 병렬 컴퓨터의 발전으로 이어질 수 있습니다. 시력과 같이 뇌가 뛰어난 작업에 특히 효과적이지만 곱셈과 같은 작업에는 적합하지 않습니다.

이 과정과 관련된 세 번째 이유는 뇌에서 영감을 얻은 혁신적인 학습 알고리즘을 사용하여 실용적인 문제를 해결하는 것과 관련이 있습니다. 이러한 알고리즘은 뇌의 작동을 정확하게 모방하지 않더라도 매우 유용할 수 있습니다. 따라서 뇌가 어떻게 기능하는지 깊이 파고들지는 않겠지만 뇌는 뉴런의 대규모 병렬 네트워크가 복잡한 계산을 수행할 수 있음을 나타내는 영감의 원천 역할을 합니다.

이 비디오에서는 뇌의 작용에 대한 더 많은 통찰을 제공할 것입니다. 전형적인 피질 뉴런은 세포체, 다른 뉴런으로 메시지를 보내는 축색 돌기 및 다른 뉴런으로부터 메시지를 받는 수상돌기로 구성됩니다. 한 뉴런의 축삭이 다른 뉴런의 수지상 나무와 연결되는 지점에서 우리는 시냅스를 찾습니다. 활동의 스파이크가 축삭을 따라 이동하면 시냅스 후 뉴런에 전하를 주입합니다.

뉴런은 수상 돌기 트리에서 받은 전하가 축삭 언덕이라는 영역을 탈분극시킬 때 스파이크를 생성합니다. 일단 탈분극되면 뉴런은 축삭을 따라 스파이크를 전송하는데, 이는 본질적으로 탈분극의 파동입니다.

시냅스 자체는 흥미로운 구조를 가지고 있습니다. 그들은 송신기 화학 물질로 채워진 소포를 포함합니다. 스파이크가 축삭에 도달하면 이러한 소포가 시냅스 갈라진 틈으로 이동 및 방출됩니다. 전달 분자는 시냅스 간극을 가로질러 확산되어 시냅스 후 뉴런의 막에 있는 수용체 분자에 결합합니다. 이 결합은 분자의 모양을 변경하여 특정 이온이 시냅스 후 뉴런 안팎으로 흐르도록 하는 막에 구멍을 만들어 탈분극 상태를 변경합니다.

시냅스는 컴퓨터 메모리에 비해 상대적으로 느리지만 컴퓨터의 랜덤 액세스 메모리보다 장점이 있습니다. 그들은 작고 저전력이며 적응력이 있습니다. 적응성은 시냅스가 로컬에서 사용 가능한 신호를 활용하여 강도를 변경할 수 있도록 하기 때문에 중요합니다. 이러한 적응성은 학습과 복잡한 계산을 수행하는 능력을 촉진합니다.

그런 다음 문제가 발생합니다. 시냅스는 강도를 변경하는 방법을 어떻게 결정합니까? 적응 규칙은 무엇입니까? 이것은 필수적인 고려 사항입니다.

요약하면, 뇌는 다른 뉴런으로부터 입력을 받는 뉴런을 통해 기능합니다. 뉴런의 작은 부분만이 감각 수용체로부터 입력을 받습니다. 뉴런은 활동 스파이크를 전송하여 피질 내에서 통신합니다. 입력이 뉴런에 미치는 영향은 시냅스 가중치에 따라 달라지며, 이는 양수 또는 음수가 될 수 있습니다. 이러한 시냅스 가중치는 적응하여 전체 네트워크가 객체 인식, 언어 이해, 계획 및 운동 제어와 같은 다양한 계산을 학습하고 수행할 수 있도록 합니다.

뇌는 약 10^11개의 뉴런으로 구성되며 각 뉴런은 약 10^4의 시냅스 가중치를 가집니다. 결과적으로 뇌에는 엄청난 수의 시냅스 가중치가 포함되어 있으며 그 중 다수는 밀리초 내에 진행 중인 계산에 기여합니다. 이것은 현대 워크스테이션에 비해 지식 저장을 위한 우수한 대역폭을 뇌에 제공합니다.

뇌의 또 다른 흥미로운 측면은 모듈성입니다. 피질의 다른 영역은 결국 다른 기능을 전문으로 합니다. 감각 입력은 유전적으로 특정 영역으로 전달되어 최종 기능에 영향을 미칩니다. 뇌에 대한 국소적 손상은 언어 이해 또는 물체 인식 상실과 같은 특정 효과를 초래합니다. 뇌의 유연성은 초기 손상에 대한 반응으로 기능이 뇌의 다른 부분으로 재배치될 수 있다는 사실에서 분명합니다. 이것은 피질이 경험을 기반으로 특정 작업에 적응할 수 있는 유연하고 보편적인 학습 알고리즘을 포함하고 있음을 시사합니다.

결론적으로 뇌는 일단 학습하면 놀라운 유연성과 함께 빠른 병렬 계산을 수행합니다. 표준 병렬 하드웨어가 구축되고 후속 정보가 수행할 특정 병렬 계산을 결정하는 FPGA와 유사합니다. 기존의 컴퓨터는 순차 프로그래밍을 통해 유연성을 달성하지만 프로그램 라인에 액세스하고 긴 순차 계산을 수행하려면 빠른 중앙 프로세스가 필요합니다.

Lecture 1.2 — What are neural networks [Neural Networks for Machine Learning]
Lecture 1.2 — What are neural networks [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

강의 1.3 — 몇 가지 간단한 뉴런 모델



강의 1.3 — 몇 가지 간단한 뉴런 모델 [머신 러닝을 위한 신경망]

선형 뉴런, 역치 뉴런 및 더 복잡한 모델을 포함하여 몇 가지 간단한 뉴런 모델을 설명하겠습니다. 이러한 모델은 실제 뉴런보다 단순하지만 여전히 기계 학습을 위한 신경망을 만들 수 있습니다. 복잡한 시스템을 이해할 때 작동 방식을 파악하려면 시스템을 단순화하고 이상화해야 합니다. 여기에는 중요하지 않은 세부 사항을 제거하고 수학과 유추를 적용하는 것이 포함됩니다. 필수 속성을 간과하지 않는 것이 중요하지만 잘못된 것으로 알려져 있지만 실제로는 여전히 유용한 모델을 연구하는 것이 유용할 수 있습니다. 예를 들어 신경망은 실제 피질 뉴런이 다르게 동작하더라도 개별 스파이크 대신 실제 값을 전달하는 뉴런을 사용하는 경우가 많습니다.

가장 단순한 유형의 뉴런은 계산상의 한계가 있지만 더 복잡한 뉴런에 대한 통찰력을 제공하는 선형 뉴런입니다. 출력은 편향과 입력 활동의 가중 합계에 의해 결정됩니다. 편향과 가중 활동의 플롯은 직선을 형성합니다. 반대로 McCulloch와 Pitts가 도입한 이진 임계값 뉴런은 가중 합계가 임계값을 초과하는 경우 활동 스파이크를 보냅니다. 이러한 스파이크는 뉴런이 결합하여 고유한 진리값을 생성하는 진리값을 나타냅니다. 한때 논리가 마음을 이해하는 주요 패러다임으로 여겨졌던 반면, 이제 뇌는 신뢰할 수 없는 다양한 증거 소스를 결합하여 논리를 덜 적합하게 만드는 것으로 생각됩니다.

이진 임계값 뉴런은 두 개의 등가 방정식으로 설명할 수 있습니다. 총 입력은 입력 활동의 합에 가중치를 곱한 값이며, 총 입력이 임계값을 초과하면 출력이 1이 됩니다. 또는 총 입력에 편향 항이 포함되며 총 입력이 0보다 크면 출력이 1이 됩니다. 정류된 선형 뉴런은 선형 뉴런과 이진 임계값 뉴런의 속성을 결합합니다. 선형 가중 합계를 계산하지만 비선형 함수를 적용하여 출력을 결정합니다. 합이 0 미만이면 출력은 0이고 0보다 크면 합과 같아 비선형이지만 0보다 선형인 출력이 됩니다.

시그모이드 뉴런은 일반적으로 인공 신경망에서 사용됩니다. 전체 입력의 매끄럽고 제한된 함수인 실제 값 출력을 제공합니다. 로지스틱 함수가 자주 사용되며 출력은 1을 1로 나눈 값에 총 입력의 음의 지수를 더한 값입니다. 큰 양수 입력의 경우 출력은 1이고 큰 음수 입력의 경우 출력은 0입니다. 시그모이드 함수는 부드러운 도함수를 가지고 있어 신경망에서 학습을 용이하게 합니다.

확률 이진 뉴런은 로지스틱 단위와 동일한 방정식을 사용하지만 확률을 실수로 출력하는 대신 확률적 결정을 내리고 1 또는 0을 출력합니다. 확률은 스파이크를 생성할 가능성을 나타냅니다. 입력이 매우 양수이면 1을 생성하고 매우 음수 입력이면 0을 생성할 가능성이 높습니다. 수정된 선형 단위는 유사한 원리를 따르지만 스파이크 생산에 무작위성을 도입합니다. 정류된 선형 장치의 출력은 스파이크 생성 속도를 나타내며 실제 스파이크 시간은 장치 내 임의의 포아송 프로세스에 의해 결정됩니다.

이진 뉴런 및 정류된 선형 단위의 이러한 확률적 동작은 신경망에 본질적인 무작위성을 도입합니다. 스파이크 생성 속도는 결정론적이지만 스파이크의 실제 타이밍은 무작위 프로세스가 됩니다. 이 임의성은 시스템에 가변성과 확률을 추가합니다.

이러한 다양한 뉴런 모델을 이해하면 다양한 계산 기능을 사용할 수 있습니다. 선형 뉴런은 계산적으로 제한적이지만 더 복잡한 시스템에 대한 통찰력을 제공할 수 있습니다. 이진 임계값 뉴런은 임계값 비교를 기반으로 의사 결정을 허용합니다. 수정된 선형 뉴런은 선형성과 비선형성을 결합하여 의사 결정과 선형 처리를 동시에 가능하게 합니다. 시그모이드 뉴런은 매끄럽고 제한된 출력을 제공하며 미분 가능한 특성으로 인해 신경망에서 일반적으로 사용됩니다. 확률적 이진 뉴런과 정류된 선형 단위는 시스템에 무작위성을 도입하여 확률론적 의사 결정과 변동성을 허용합니다.

신경망에서 다양한 유형의 뉴런을 결합하여 기계 학습 작업을 위한 강력한 모델을 만들 수 있습니다. 이러한 네트워크는 데이터에서 학습하고, 가중치와 편향을 조정하고, 학습된 패턴을 기반으로 예측 또는 분류를 수행할 수 있습니다. 이러한 뉴런 모델의 원리와 동작을 이해하면 효과적인 신경망을 설계하고 훈련하는 데 도움이 됩니다.

그러나 이러한 뉴런 모델은 뇌에 있는 실제 뉴런의 단순화된 추상화라는 점을 기억하는 것이 중요합니다. 뇌는 놀랍도록 복잡하고 역동적인 시스템이며 이러한 모델은 신경 처리의 특정 측면을 포착하기 위한 근사치 역할을 합니다. 실제 뉴런의 전체 복잡성을 캡처하지 못할 수도 있지만 계산 모델을 구축하고 인상적인 기계 학습 기능을 달성하는 데 유용한 도구를 제공합니다.

선형 뉴런, 임계값 뉴런, 정류된 선형 뉴런, 시그모이드 뉴런 및 확률적 이진 뉴런을 포함한 다양한 뉴런 모델을 연구하면 다양한 계산 속성과 동작을 이해할 수 있습니다. 이러한 모델은 신경망을 구축하기 위한 기반을 형성하고 다양한 기계 학습 작업을 수행할 수 있도록 합니다. 단순하면서도 신경 시스템의 기능에 대한 귀중한 통찰력을 제공합니다.

Lecture 1.3 — Some simple models of neurons [Neural Networks for Machine Learning]
Lecture 1.3 — Some simple models of neurons [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

강의 1.3 — 몇 가지 간단한 뉴런 모델



강의 1.3 — 몇 가지 간단한 뉴런 모델 [머신 러닝을 위한 신경망]

선형 뉴런, 역치 뉴런 및 더 복잡한 모델을 포함하여 몇 가지 간단한 뉴런 모델을 설명하겠습니다. 이러한 모델은 실제 뉴런보다 단순하지만 여전히 기계 학습을 위한 신경망을 만들 수 있습니다. 복잡한 시스템을 이해할 때 작동 방식을 파악하려면 시스템을 단순화하고 이상화해야 합니다. 여기에는 중요하지 않은 세부 사항을 제거하고 수학과 유추를 적용하는 것이 포함됩니다. 필수 속성을 간과하지 않는 것이 중요하지만 잘못된 것으로 알려져 있지만 실제로는 여전히 유용한 모델을 연구하는 것이 유용할 수 있습니다. 예를 들어 신경망은 실제 피질 뉴런이 다르게 동작하더라도 개별 스파이크 대신 실제 값을 전달하는 뉴런을 사용하는 경우가 많습니다.

가장 단순한 유형의 뉴런은 계산상의 한계가 있지만 더 복잡한 뉴런에 대한 통찰력을 제공하는 선형 뉴런입니다. 출력은 편향과 입력 활동의 가중 합계에 의해 결정됩니다. 편향과 가중 활동의 플롯은 직선을 형성합니다. 반대로 McCulloch와 Pitts가 도입한 이진 임계값 뉴런은 가중 합계가 임계값을 초과하는 경우 활동 스파이크를 보냅니다. 이러한 스파이크는 뉴런이 결합하여 고유한 진리값을 생성하는 진리값을 나타냅니다. 한때 논리가 마음을 이해하는 주요 패러다임으로 여겨졌던 반면, 이제 뇌는 신뢰할 수 없는 다양한 증거 소스를 결합하여 논리를 덜 적합하게 만드는 것으로 생각됩니다.

이진 임계값 뉴런은 두 개의 등가 방정식으로 설명할 수 있습니다. 총 입력은 입력 활동의 합에 가중치를 곱한 값이며, 총 입력이 임계값을 초과하면 출력이 1이 됩니다. 또는 총 입력에 편향 항이 포함되며 총 입력이 0보다 크면 출력이 1이 됩니다. 정류된 선형 뉴런은 선형 뉴런과 이진 임계값 뉴런의 속성을 결합합니다. 선형 가중 합계를 계산하지만 비선형 함수를 적용하여 출력을 결정합니다. 합이 0 미만이면 출력은 0이고 0보다 크면 합과 같아 비선형이지만 0보다 선형인 출력이 됩니다.

시그모이드 뉴런은 일반적으로 인공 신경망에서 사용됩니다. 전체 입력의 매끄럽고 제한된 함수인 실제 값 출력을 제공합니다. 로지스틱 함수가 자주 사용되며 출력은 1을 1로 나눈 값에 총 입력의 음의 지수를 더한 값입니다. 큰 양수 입력의 경우 출력은 1이고 큰 음수 입력의 경우 출력은 0입니다. 시그모이드 함수는 부드러운 도함수를 가지고 있어 신경망에서 학습을 용이하게 합니다.

확률 이진 뉴런은 로지스틱 단위와 동일한 방정식을 사용하지만 확률을 실수로 출력하는 대신 확률적 결정을 내리고 1 또는 0을 출력합니다. 확률은 스파이크를 생성할 가능성을 나타냅니다. 입력이 매우 양수이면 1을 생성하고 매우 음수 입력이면 0을 생성할 가능성이 높습니다. 수정된 선형 단위는 유사한 원리를 따르지만 스파이크 생산에 무작위성을 도입합니다. 정류된 선형 장치의 출력은 스파이크 생성 속도를 나타내며 실제 스파이크 시간은 장치 내 임의의 포아송 프로세스에 의해 결정됩니다.

이진 뉴런 및 정류된 선형 단위의 이러한 확률적 동작은 신경망에 본질적인 무작위성을 도입합니다. 스파이크 생성 속도는 결정론적이지만 스파이크의 실제 타이밍은 무작위 프로세스가 됩니다. 이 임의성은 시스템에 가변성과 확률을 추가합니다.

이러한 다양한 뉴런 모델을 이해하면 다양한 계산 기능을 사용할 수 있습니다. 선형 뉴런은 계산적으로 제한적이지만 더 복잡한 시스템에 대한 통찰력을 제공할 수 있습니다. 이진 임계값 뉴런은 임계값 비교를 기반으로 의사 결정을 허용합니다. 수정된 선형 뉴런은 선형성과 비선형성을 결합하여 의사 결정과 선형 처리를 동시에 가능하게 합니다. 시그모이드 뉴런은 매끄럽고 제한된 출력을 제공하며 미분 가능한 특성으로 인해 신경망에서 일반적으로 사용됩니다. 확률적 이진 뉴런과 정류된 선형 단위는 시스템에 무작위성을 도입하여 확률론적 의사 결정과 변동성을 허용합니다.

신경망에서 다양한 유형의 뉴런을 결합하여 기계 학습 작업을 위한 강력한 모델을 만들 수 있습니다. 이러한 네트워크는 데이터에서 학습하고, 가중치와 편향을 조정하고, 학습된 패턴을 기반으로 예측 또는 분류를 수행할 수 있습니다. 이러한 뉴런 모델의 원리와 동작을 이해하면 효과적인 신경망을 설계하고 훈련하는 데 도움이 됩니다.

그러나 이러한 뉴런 모델은 뇌에 있는 실제 뉴런의 단순화된 추상화라는 점을 기억하는 것이 중요합니다. 뇌는 놀랍도록 복잡하고 역동적인 시스템이며 이러한 모델은 신경 처리의 특정 측면을 포착하기 위한 근사치 역할을 합니다. 실제 뉴런의 전체 복잡성을 캡처하지 못할 수도 있지만 계산 모델을 구축하고 인상적인 기계 학습 기능을 달성하는 데 유용한 도구를 제공합니다.

선형 뉴런, 임계값 뉴런, 정류된 선형 뉴런, 시그모이드 뉴런 및 확률적 이진 뉴런을 포함한 다양한 뉴런 모델을 연구하면 다양한 계산 속성과 동작을 이해할 수 있습니다. 이러한 모델은 신경망을 구축하기 위한 기반을 형성하고 다양한 기계 학습 작업을 수행할 수 있도록 합니다. 단순하면서도 신경 시스템의 기능에 대한 귀중한 통찰력을 제공합니다.