신경망은 꽤 멋져 보입니다. 신경은 뇌를 생각하게 합니다. 복잡합니다. 그러나 선형 회귀에 익숙하다면 신경망의 기능을 이해하는 데 필요한 구성 요소를 갖춘 것입니다.
신경망(NN)은 일반적으로 다음과 같이 분류됩니다. 지도 머신러닝 (그러나 #AutoEncoder와 레이블이 지정된 데이터 없이 놀라운 작업을 수행할 수 있는 NN 유형도 있습니다.) 이들은 일련의 입력(무언가를 예측하는 데 사용하려는 변수 집합)을 취하고 결과를 예측합니다.
선형 회귀와 매우 비슷해 보입니다.
선형 회귀에서는 하나 이상의 입력을 취하고 다음 공식을 사용하여 연속 출력을 예측합니다.
여기서 Y는 예측하려는 것이고,
귀하의 입력입니다. 예를 들어, 연령, 성별, 급여 및 임대료를 기반으로 비디오 게임에 매년 지출하는 금액을 예측할 수 있습니다.

그런 다음 회귀를 보자. 배우다 계수의 값(이렇게 말하는 것이 어리석은 방법처럼 보일 수도 있지만 제 말을 따르세요).
우리는하지 않습니다 말하다 회귀 분석에서는 계수가 무엇인지 대신에 어떻게 해야 하는지 알려줍니다. 배우다 그들을. 간단한 경우에는 회귀 분석에서 최소 제곱법을 사용하도록 요청하는 경우가 많습니다. 배우다 최적의 계수는 무엇입니까?
본질적으로 우리는 회귀 분석에 다음을 제공합니다. 구조 모델의 경우 방법 모델의 값을 학습합니다. 그런 다음 학습할 수 있도록 설정했습니다.
신경망을 구축할 때 다음 중 하나도 선택합니다. 구조 그리고 방법 하지만 회귀에 사용하는 구조 및 방법과는 약간 다르게 보이는 경우가 많습니다.
회귀 예제
구조
노드. 신경망 사용 노드 값을 담는 컨테이너로 사용됩니다. 이 노드에는 사이 그들 사이에. 그래픽으로 그려보면 막대사탕이 나란히 놓여 있는 것처럼 보입니다.
연결은 연결을 사용하여 다음 노드로 이동할 때 한 노드의 값에 적용되는 수학적 계산을 나타냅니다.
비디오 게임 회귀를 신경망으로 구축하고 싶다면 완전히 가능합니다! 그 구조는 다음과 같습니다:
레이어. 우리 비디오 게임 NN에는 두 개의 레이어가 있습니다. 입력 NN에 예측 변수 연령, 성별, 급여, 임대료를 제공하는 레이어와 산출 NN에서 예측을 얻는 레이어입니다.
두 레이어 사이의 연결에는 가중치가 포함되어 있습니다. 이를 호출할 수 있습니다. 중 , 엔, 피 그리고 케이 , 입력 레이어에서 출력 레이어로 이동하면서 각 변수에 적용됩니다. 그러면 나이가 곱해집니다 중 , 섹스 N 등이 있으며 이러한 제품은 모두 출력 노드에 함께 추가됩니다.
신경망은 또한 편견 (비) 출력 노드의 값으로 이동합니다. 편향은 단지 스칼라(1, -7, 42와 같은 일반 숫자)입니다.
우리가 구축한 신경망 구조를 기반으로 출력 노드는 다음 공식에 따라 결과를 제공합니다.
위에서 본 회귀식과 동일합니다.
학습 방법
선형 회귀를 수행할 때 계수 값을 찾고 계산해야 합니다. (b,m,n,p, 그리고 케이 ) 모델 구조를 지정한 후. 종종 우리는 계수를 찾기 위해 최소제곱법을 사용합니다.
즉, 최소 제곱법은 모델의 예측과 실제 데이터 간의 제곱 오차의 합을 최소화하는 계수를 찾습니다.
수학적인 용어로 이 함수를 최소화합니다.
어디
데이터 포인트의 실제 값입니다.
해당 데이터 포인트에 대한 모델의 예측입니다.
손실. 원한다면 이 함수를 손실 함수 . 이것이 바로 신경망으로 작업할 때 호출되는 것입니다. 손실 함수는 우리에게 손실이 어떻게 발생하는지에 대한 수치적 척도를 제공합니다. 잘 우리 모델이 하고 있어요. 손실이 작으면 예측이 꽤 정확합니다. 크면 별로 덥지 않더라구요. 좋은 모델을 구축하는 우리의 목표는 항상 손실 함수를 최소화하여 모델 성능을 최대화하는 것입니다.
그리고 평균 제곱 오류( 전) 최소 제곱에서)는 많은 모델에 적합한 선택이며 다른 선택도 많이 있습니다. 신경망은 모든 종류의 구조를 가질 수 있으며, 다양한 데이터/구조는 다른 유형의 손실 함수로부터 이점을 얻을 수 있습니다.
"학습." 우리는 손실 함수를 최소화하고 싶다는 것을 알고 있으며 신경망을 구축하는 데 사용한 데이터와 구조를 갖고 있지만 실제로는 최소화를 *실행*해야 합니다. 이것이 신경망이 회귀 모델에서 벗어나기 시작하는 지점입니다.
간단한 회귀에는 선형 대수, 기하학 및 정규 대수를 사용하여 정확한 계수를 해결하는 매우 쉽고 빠른 수학적 방법이 있습니다. 그러나 신경망은 약간 다른 접근 방식을 취합니다. 신경망은 손실 함수를 최소화하고 모델을 최적화하는 값을 찾기 위해 반복적인 접근 방식을 사용하는 경우가 많습니다. 본질적으로 우리는 반복의 각 단계에서 "최상의" 답변에 한 걸음 더 다가가려고 노력합니다.
많은 도구와 튜토리얼에서는 다음과 같은 형식을 사용합니다. 경사하강법 . 전통적인 경사하강법은 JMP에서 사용하는 기술이 아니기 때문에 기술적인 세부 사항에 많은 시간을 할애하지 않겠습니다. 하지만 일반적인 생각은 다음과 같습니다. 구배 포인트가 높을수록 모델 성능이 좋지 않음을 나타내고 포인트가 낮을수록 좋음, 심지어 최적의 모델 성능을 나타내는 손실 함수(산과 계곡이 있는 지도를 생각해 보세요).
이 지도에서 가능한 가장 낮은 지점에 도달하려고 노력하는 등산객으로서 경사하강법을 상상할 수 있습니다. 한 걸음씩 내딛을 때마다 주위를 둘러보며 어느 방향이 가장 가파른 내리막길인지 파악하고 그 방향으로 나아갑니다. 결국 그들은 낮은 지점에 이르게 됩니다. 하이킹 비유에서 돌아와서, 낮은 지점은 손실 함수가 최소화되는 일련의 매개변수(계수 및 편향 등)를 나타내므로 모델이 꽤 잘 작동합니다!
~ 안에 JMP NN을 최적화하기 위해 약간 다른 기술이 사용됩니다. 일반적인 Gradient Descent를 사용하는 대신 방법을 사용하는 경우 JMP는 BFGS 알고리즘(즉, 비 ig 에프 친근하게 G 나는 에스 , Roald Dahl 팬들에게 죄송합니다). BFGS 알고리즘은 경사하강법과 유사하게 모델을 최적화하기 위한 단계를 반복적으로 수행하는 데 도움이 되지만 이를 위해 다른 수학을 사용합니다.
알고리즘이 최종 최저점(경도의 계곡 중 하나)을 찾을 때까지 기다리는 대신 JMP는 검증 세트를 확인하여 모델이 최적화되었다고 결정합니다. 이것이 JMP가 검증 세트를 요구하거나 검증 세트의 일부를 보류하는 이유입니다. NN을 구축할 때 데이터를 자동으로 검증합니다. 검증 세트는 모델을 최적화하는 데 사용되지 않는 데이터로 구성됩니다.
JMP는 검증 세트에서 현재 모델을 테스트합니다. 낮은 지점을 향해 더 많은 "단계"를 수행해도 검증 세트에서 모델 성능이 크게 향상되지 않으면 JMP는 모델이 최적화된 것으로 간주합니다. 모델을 생성하는 데 사용되지 않은 새 데이터에 대해 모델을 테스트하면 생성 중인 모델이 향후 데이터에서 어떻게 작동할지 이해하는 데 도움이 됩니다. 이 방법을 '조기 중지'라고 합니다. 왜냐하면 낮은 지점을 향해 더 일찍 발걸음을 멈추게 하기 때문입니다. 이를 통해 모델을 신속하게 최적화할 수 있습니다.
어떤 방법을 사용하든 일단 모델이 충분히 최적화된 것으로 간주되면 이제 신경망의 매개변수에 대한 모든 추정치를 갖게 됩니다! 마침내 우리는 무언가를 예측하는 데 사용할 수 있는 작업 모델을 갖게 되었습니다.
더욱 복잡한 구조
이제 신경망이 어떻게 작동하는지에 대한 기본 사항을 알았습니다. 구조화된 , 그리고 그들이 어떻게 배우다 . 하지만 모든 신경망이 위에서 했던 회귀 분석처럼 보일 필요는 없습니다. 신경망을 사용하면 구조를 구축할 때 훨씬 더 유연해질 수 있습니다.
다중 레이어 . 신경망으로 할 수 있는 한 가지는 레이어를 더 추가하는 것입니다. 회귀 예제에는 출력 레이어에 직접 연결된 입력 레이어가 있습니다. 하지만 그 사이에 추가 레이어를 삽입하고 각 레이어를 다음 레이어에 연결할 수 있습니다.
이는 입력 데이터가 출력 레이어에 도달하기 전에 더 많은 연결(따라서 더 많은 계산)을 거치게 됨을 의미합니다. 레이어와 연결이 많을수록 근사할 수 있는 함수가 더 복잡해집니다.
우리가 모델을 구축할 때 본질적으로 그렇게 하는 이유는 입력과 출력 사이에 관계가 있다고 믿기 때문입니다. 몇 가지 수학적 함수가 있습니다. 이는 모든 입력 값을 출력 값으로 변환하는 방법을 설명할 수 있습니다. 나이, 성별, 급여, 임대료를 기준으로 비디오 게임에 지출된 금액을 추측하는 것과 같습니다.
우리는 우리가 만드는 모델이 (우리는 그것을 부를 것입니다) 희망합니다 에프*(엑스) ) 매우 가깝습니다(또는 근사치). 에프엑스(f(x)) . 하지만 에프엑스(f(x)) 꽤 복잡한 모델일 수도 있습니다. 선형적이지도 않을 수도 있습니다 *헐떡거림*! 추가 레이어(그리고 잠시 후에 설명할 몇 가지 다른 트릭)를 사용하면 우리가 만드는 모델이 더 복잡해집니다. 만약에 에프*(엑스) 또한 복잡하다면 다음과 유사한 모델을 만들 가능성이 더 높습니다. 에프엑스(f(x)) .
입력 및 출력 레이어의 노드 수는 미리 결정됩니다. 입력 레이어에는 각 변수(또는 기계 학습에서 흔히 부르는 기능)에 대해 하나의 노드가 있고, 출력 레이어에는 예측하려는 모든 숫자에 대해 하나의 노드가 있습니다. 그러나 숨겨진 레이어라고 하는 더 많은 레이어를 추가하기 시작하면 원하는 만큼의 노드를 선택할 수 있습니다. 신경망 역사의 현 시점에서는 과학이라기보다는 예술에 가깝습니다. 각 히든 레이어에 대해 선택할 노드 수에 대한 좋은 경험 법칙이 있지만(예: 각 레이어의 노드 수를 천천히 줄이는 것) 정확한 답은 없습니다.
활성화 기능. 자, 일부 모델이 어떻게 선형이 아닌지에 대한 내 의견으로 돌아가겠습니다(*다시 헐떡거림*). 신경망은 또한 다음을 사용합니다. 활성화 기능 우리가 생성하는 모델이 비선형이 되도록 각 노드에 배치합니다.
JMP 프로 활성화 함수에 대한 세 가지 옵션인 TanH, 선형 및 가우스를 제공합니다. 회귀 모델에서 우리는 "은밀하게" 선형 활성화 함수를 사용했습니다. 활성화 함수는 입력을 노드로 가져와 다음 레이어로 전달하기 전에 일종의 변환을 수행합니다. ㅏ 선의 활성화(빨간색)는 값을 가져와 변경되지 않은 상태로 반환합니다. 이는 위의 단순 회귀 NN에서 수행했던 것과 정확히 같습니다.
하지만 그대로 놔둘 필요는 없습니다. 그만큼 탄H 활성화(파란색)는 시그모이드 활성화의 한 종류입니다(즉, 함수가 S를 쭉 뻗은 것처럼 보입니다). 이는 모든 입력을 받아 -1과 1 사이의 값으로 매핑하기 때문에 유용합니다. 큰 음수 값은 -1에 가까운 값으로 변환되고, 큰 양수 값은 1에 가까운 값으로 변환됩니다. 모델이 연속 출력보다는 범주(예: 누군가가 대출을 불이행할지 여부)를 예측할 때 매우 유용합니다.
ㅏ 가우스 활성화 함수(녹색)는 극단값(높음 또는 낮음)을 취하고 0에 가까운 값을 반환합니다. 덜 극단적인 값의 경우 1에 가까운 값을 반환합니다.
선형 활성화만 사용하는 경우 생성하는 모델은 선형만 가능합니다. 그러나 비선형 활성화 함수를 사용하면 이제 비선형 모델을 만들 수 있습니다!
JMP Pro를 사용하면 최대 2개의 레이어로 구성된 신경망을 생성할 수 있으며 각 레이어에 대해 서로 다른 활성화 기능을 선택할 수 있습니다. 다양한 수의 레이어, 노드 및 다양한 활성화 기능을 사용하여 신경망을 위한 수많은 구조를 만들 수 있습니다. 신경망을 사용하면 하나의 연속 값이 아닌 카테고리를 예측할 수도 있습니다.
JMP
JMP에서 신경망을 구축하려면 다음으로 이동하세요. 분석>예측 모델링>신경망 . Neural 플랫폼이 열리면 입력과 출력을 각각 X 및 Y 상자로 끌어서 선택할 수 있습니다.
그러면 두 개의 숨겨진 레이어에 원하는 노드 수와 사용할 활성화 기능 종류를 지정할 수 있는 모델 실행 창이 열립니다.
일단 클릭하면 가다 , JMP는 신경망을 구축하고 모델 성능 측정 테이블(연속 출력의 경우 R^2 또는 RMSE 등)을 생성합니다. 빨간색 삼각형을 클릭하고 선택하여 실제 값을 예측 값으로 표시할 수도 있습니다. 실제를 예측으로 플롯 . 마찬가지로 빨간색 삼각형을 클릭하고 예측을 기준으로 잔차 플롯 . 빨간색 삼각형 메뉴로 이동하여 선택할 수도 있습니다. 프로파일러 신경망에서 실제로 무슨 일이 일어나고 있는지 자세히 보여주는 예측 프로파일러를 얻으려면 블랙박스는 이제 그만!

결론
신경망은 매우 재미있으며 사람들에게 신경망을 사용하고 있음을 알리는 것이 멋질 것 같습니다. 하지만 그들의 실제 성격을 살펴보면 그렇지 않습니다. 그래서 단순 선형 회귀와는 다릅니다. 두 경우 모두, 우리는 구조 그리고 학습 방법 작동하고 최적화된 모델을 얻기 위해. 신경망 하다 단순한 선형 회귀보다 더 복잡한 구조를 모델링할 수 있으므로 입력과 출력 간의 관계가 복잡하다고 생각할 때 종종 유용합니다.
추가 레이어와 활성화 기능을 통해 네트워크 구조를 조작할 수 있으며 이는 시작에 불과합니다! 범주형 결과, 여러 연속 결과를 예측할 수 있으며 5개 또는 10개의 레이어를 가질 수 있습니다! 신경망에 적용할 수 있는 훨씬 더 멋진 기능(예: Dropout 또는 여기서 다루지 않은 기타 활성화 기능)이 있지만 이제 기본 사항을 알았으므로 이러한 모든 기능을 좀 더 자신 있게 탐색할 수 있습니다.