Main Content

다층 신경망 훈련 함수 선택하기

주어진 문제에 대해 어느 훈련 알고리즘이 가장 빠른 속도를 보일지 알기란 쉽지 않습니다. 속도는 문제의 복잡도, 훈련 세트에 포함된 데이터 점의 개수, 신경망에 있는 가중치와 편향의 개수, 오차 목표, 신경망이 패턴 인식(판별분석)과 함수 근사(회귀) 중 어느 것에 사용되고 있는지 등과 같은 다양한 요인에 따라 달라집니다. 이 섹션에서는 다양한 훈련 알고리즘을 비교합니다. 피드포워드 신경망은 6개의 문제에 대해 훈련되었습니다. 3개의 문제는 패턴 인식 범주에 해당하고 나머지 3개의 문제는 함수 근사 범주에 해당합니다. 2개의 문제는 간단한 “모형” 문제인 반면 나머지 4개의 문제는 “현실 세계” 문제입니다. 다양한 아키텍처와 복잡도를 갖는 신경망이 사용되었으며, 다양한 정확도 수준으로 훈련되었습니다.

다음 표에는 테스트한 알고리즘과 이를 식별하는 데 사용한 약어가 나열되어 있습니다.

약어

알고리즘

설명

LM

trainlm

Levenberg-Marquardt

BFG

trainbfg

BFGS 준뉴턴

RP

trainrp

탄력적 역전파

SCG

trainscg

스케일링된 켤레 기울기

CGB

traincgb

Powell/Beale 재시작 알고리즘을 사용한 켤레 기울기

CGF

traincgf

Fletcher-Powell 켤레 기울기

CGP

traincgp

Polak-Ribiére 켤레 기울기

OSS

trainoss

1스텝 할선법

GDX

traingdx

가변 학습률 역전파

다음 표에는 6개의 벤치마크 문제와 사용된 신경망, 훈련 과정 및 컴퓨터의 몇 가지 특징이 나열되어 있습니다.

문제 제목

문제 유형

신경망 구조

오차 목표

컴퓨터

SIN

함수 근사

1-5-10.002

Sun Sparc 2

PARITY

패턴 인식

3-10-10-10.001

Sun Sparc 2

ENGINE

함수 근사

2-30-20.005

Sun Enterprise 4000

CANCER

패턴 인식

9-5-5-20.012

Sun Sparc 2

CHOLESTEROL

함수 근사

21-15-30.027

Sun Sparc 20

DIABETES

패턴 인식

8-15-15-20.05

Sun Sparc 20

SIN 데이터 세트

첫 번째 벤치마크 데이터 세트는 간단한 함수 근사 문제입니다. 은닉 계층에 tansig 전달 함수가 있고 출력 계층에 선형 전달 함수가 있는 1-5-1 신경망이 하나의 사인파 주기를 근사하는 데 사용되었습니다. 다음 표에는 9개의 훈련 알고리즘을 사용하여 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 30번의 시행을 나타내며, 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.002보다 작아질 때까지 훈련되었습니다. 이 문제에 대해 가장 빠른 알고리즘은 Levenberg-Marquardt 알고리즘입니다. 두 번째로 빠른 알고리즘보다 평균적으로 4배 이상 빠릅니다. 이것은 신경망에 100개 미만의 가중치가 있고 근사가 매우 정확해야 하는 함수 근사 문제로, LM 알고리즘이 가장 적합한 유형의 문제입니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

LM

1.14 1.00 0.65 1.830.38

BFG

5.22 4.58 3.17 14.38 2.08

RP

5.67 4.97 2.66 17.243.72

SCG

6.09 5.34 3.1823.643.81

CGB

6.61 5.80 2.9923.653.67

CGF

7.86 6.89 3.5731.234.76

CGP

8.24 7.23 4.0732.325.03

OSS

9.64 8.46 3.9759.639.79

GDX

27.69 24.29 17.21258.1543.65

여러 알고리즘의 성능은 근사에서 요구되는 정확도에 의해 영향을 받을 수 있습니다. 다음 그림은 이 영향을 보여줍니다. 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간(30번 시행의 평균) 대비 평균 제곱 오차가 플로팅되어 있습니다. 여기서 LM 알고리즘의 오차가 표시된 다른 알고리즘보다 훨씬 빠르게 감소하는 것을 확인할 수 있습니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. 여기서 오차 목표가 줄어들면 LM 알고리즘의 성능이 훨씬 더 뚜렷하게 개선되는 것을 확인할 수 있습니다. 오차 목표가 줄어들면 성능이 높아지는 알고리즘도 있고(LM과 BFG), 오차 목표가 줄어들면 성능이 저하되는 알고리즘도 있습니다(OSS와 GDX).

PARITY 데이터 세트

두 번째 벤치마크 문제는 3비트 숫자의 패리티를 검출하는 간단한 패턴 인식 문제입니다. 입력 패턴의 1의 개수가 홀수이면 신경망은 1을 출력해야 하고 그렇지 않으면 -1을 출력해야 합니다. 이 문제에 사용된 신경망은 각 계층에 tansig 뉴런이 있는 3-10-10-1 신경망입니다. 다음 표에는 9개의 알고리즘을 사용하여 이 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 30번의 시행을 나타내며, 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.001보다 작아질 때까지 훈련되었습니다. 이 문제에 대해 가장 빠른 알고리즘은 탄력적 역전파 알고리즘입니다. 그러나 켤레 기울기 알고리즘(구체적으로는 스케일링된 켤레 기울기 알고리즘)도 거의 비슷하게 빠릅니다. 이 문제에서는 LM 알고리즘이 그다지 좋은 성능을 보이지 못하는 것을 볼 수 있습니다. 일반적으로 LM 알고리즘은 함수 근사 문제에서만큼 패턴 인식 문제에서 좋은 성능을 보이지 못합니다. LM 알고리즘은 근사적으로 선형인 최소제곱 문제를 위해 설계되었습니다. 패턴 인식 문제에서는 일반적으로 출력 뉴런이 포화되어 있으므로 선형 영역과는 잘 맞지 않을 것입니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

RP

3.731.00 2.356.891.26

SCG

4.091.10 2.367.481.56

CGP

5.131.38 3.508.731.05

CGB

5.301.423.9111.591.35

CGF

6.621.77 3.9628.054.32

OSS

8.002.14 5.0614.411.92

LM

13.073.50 6.4823.784.96

BFG

19.685.28 14.1926.642.85

GDX

27.077.26 25.2128.520.86

함수 근사 문제의 경우와 마찬가지로 여러 알고리즘의 성능은 신경망에서 요구되는 정확도에 의해 영향을 받을 수 있습니다. 다음 그림은 이 영향을 보여줍니다. 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간 대비 평균 제곱 오차가 플로팅되어 있습니다. LM 알고리즘은 다른 알고리즘이 이미 수렴된 후에야 빠르게 수렴됩니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. 여기서도 일부 알고리즘의 경우 오차 목표가 줄어들면 성능이 저하되는 것을 확인할 수 있습니다(OSS와 BFG).

ENGINE 데이터 세트

세 번째 벤치마크 문제는 현실적인 함수 근사(또는 비선형 회귀) 문제입니다. 데이터는 엔진 작동으로부터 획득했습니다. 신경망의 입력값은 엔진 속도와 연료 주입량이고 신경망 출력값은 토크와 배기량입니다. 이 문제에 사용된 신경망은 은닉 계층에 tansig 뉴런이 있고 출력 계층에 선형 뉴런이 있는 2-30-2 신경망입니다. 다음 표에는 9개의 알고리즘을 사용하여 이 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 30번의 시행을 나타내며(RP와 GDX의 경우 시간 제약 조건으로 인해 10번의 시행), 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.005보다 작아질 때까지 훈련되었습니다. 이 문제에 대해 가장 빠른 알고리즘은 LM 알고리즘이고, 그다음으로 빠른 알고리즘은 BFGS 준뉴턴 알고리즘과 켤레 기울기 알고리즘입니다. 이것은 함수 근사 문제이긴 하지만, LM 알고리즘이 SIN 데이터 세트에서처럼 뚜렷하게 우위에 있지는 않습니다. 이 경우에는 신경망의 가중치 및 편향 개수가 SIN 문제에서 사용된 것보다 훨씬 크고(이 케이스에서는 152개, 이전 케이스에서는 16개), 신경망 파라미터 개수가 늘어나면 LM 알고리즘의 이점이 줄어듭니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

LM

18.45 1.00 12.01 30.034.27

BFG

27.12 1.47 16.42 47.365.95

SCG

36.02 1.95 19.39 52.457.78

CGF

37.93 2.06 18.89 50.346.12

CGB

39.93 2.16 23.33 55.427.50

CGP

44.30 2.40 24.99 71.559.89

OSS

48.71 2.64 23.51 80.9012.33

RP

65.91 3.57 31.83 134.3134.24

GDX

188.50 10.22 81.59 279.9066.67

다음 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간 대비 평균 제곱 오차가 플로팅되어 있습니다. LM 알고리즘의 성능은 다른 알고리즘에 비해 시간이 더 지나서 개선됩니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. 여기서도 일부 알고리즘의 경우 오차 목표가 줄어들면 성능이 저하되는 것을 확인할 수 있으며(GDX와 RP), LM 알고리즘은 성능이 높아지는 것을 확인할 수 있습니다.

CANCER 데이터 세트

네 번째 벤치마크 문제는 현실적인 패턴 인식(또는 비선형 판별분석) 문제입니다. 신경망의 목표는 현미경 관찰을 통해 수집된 세포 기술(명세)을 바탕으로 종양을 양성 또는 악성으로 분류하는 것입니다. 입력 특성에는 덩어리 두께, 세포 크기와 세포 모양의 균일성, 변연부 유착 정도, 기저핵의 빈도가 포함됩니다. 데이터는 University of Wisconsin Hospitals, Madison의 William H. Wolberg 박사에게서 얻었습니다. 이 문제에 사용된 신경망은 모든 계층에 tansig 뉴런이 있는 9-5-5-2 신경망입니다. 다음 표에는 9개의 알고리즘을 사용하여 이 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 30번의 시행을 나타내며, 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.012보다 작아질 때까지 훈련되었습니다. 일부 알고리즘의 경우 몇 차례의 실행이 수렴하지 못했습니다. 따라서 각 알고리즘의 실행 중 상위 75%만 사용하여 통계량을 얻었습니다.

켤레 기울기 알고리즘과 탄력적 역전파 알고리즘 모두 빠르게 수렴했으며, LM 알고리즘 또한 적절히 빠른 속도를 보였습니다. PARITY 데이터 세트에서와 마찬가지로 LM 알고리즘은 함수 근사 문제에서와 달리 패턴 인식 문제에서 좋은 성능을 보이지 못했습니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

CGB

80.27 1.00 55.07102.31 13.17

RP

83.41 1.04 59.51109.39 13.44

SCG

86.58 1.08 41.21112.19 18.25

CGP

87.70 1.09 56.35116.37 18.03

CGF

110.05 1.37 63.33171.53 30.13

LM

110.33 1.37 58.94201.07 38.20

BFG

209.60 2.61 118.92318.18 58.44

GDX

313.22 3.90 166.48446.43 75.44

OSS

463.87 5.78 250.62599.99 97.35

다음 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간 대비 평균 제곱 오차가 플로팅되어 있습니다. 이 문제에서는 앞의 문제에서만큼 성능의 차이가 크지 않았습니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. 여기서도 일부 알고리즘의 경우 오차 목표가 줄어들면 성능이 저하되는 것을 확인할 수 있으며(OSS와 BFG), LM 알고리즘은 성능이 높아지는 것을 확인할 수 있습니다. LM 알고리즘은 모든 문제에서 오차 목표가 줄어들면 다른 알고리즘에 비해 상대적으로 성능이 개선되는 양상을 보입니다.

CHOLESTEROL 데이터 세트

다섯 번째 벤치마크 문제는 현실적인 함수 근사(또는 비선형 회귀) 문제입니다. 신경망의 목표는 21개의 스펙트럼 성분의 측정값을 바탕으로 콜레스테롤 수치(ldl, hdl, vldl)를 예측하는 것입니다. 데이터는 Oklahoma State University 화학과의 Neil Purdie 박사[PuLu92]에게서 얻었습니다. 이 문제에 사용된 신경망은 은닉 계층에 tansig 뉴런이 있고 출력 계층에 선형 뉴런이 있는 21-15-3 신경망입니다. 다음 표에는 9개의 알고리즘을 사용하여 이 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 20번의 시행을 나타내며(RP와 GDX의 경우 10번의 시행), 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.027보다 작아질 때까지 훈련되었습니다.

이 문제에서는 스케일링된 켤레 기울기 알고리즘이 가장 높은 성능을 보였습니다. 뿐만 아니라 모든 켤레 기울기 알고리즘이 좋은 성능을 보였습니다. LM 알고리즘은 다른 두 개의 함수 근사 문제에서만큼 이 함수 근사 문제에서 좋은 성능을 보이지 못했습니다. 이번에도 신경망의 가중치 및 편향 개수가 또 한 번 늘어났기 때문입니다(이 케이스에서는 378개, 이전 케이스에서는 152개, 처음 케이스에서는 16개). 파라미터 개수가 늘어나면 LM 알고리즘에 필요한 연산이 기하급수적으로 늘어납니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

SCG

99.731.0083.10113.409.93

CGP

121.541.22101.76162.4916.34

CGB

124.061.2 107.64146.9014.62

CGF

136.041.36106.46167.2817.67

LM

261.502.62103.52398.45102.06

OSS

268.552.69197.84372.9956.79

BFG

550.925.52471.61676.3946.59

RP

1519.0015.23581.172256.10557.34

GDX

3169.5031.782514.904168.20610.52

다음 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간 대비 평균 제곱 오차가 플로팅되어 있습니다. 이 문제에서는 LM 알고리즘의 평균 제곱 오차가 다른 알고리즘보다 낮아지는 것을 확인할 수 있습니다. SCG 알고리즘과 RP 알고리즘은 가장 빠르게 초기에 수렴합니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. LM 알고리즘과 BFG 알고리즘은 오차 목표가 줄어들면 다른 알고리즘에 비해 상대적으로 성능이 높아지는 것을 확인할 수 있습니다.

DIABETES 데이터 세트

여섯 번째 벤치마크 문제는 패턴 인식 문제입니다. 신경망의 목표는 개인 데이터(연령, 임신 횟수)와 의료 검진 결과(예: 혈압, 체지방 지수, 당내성 검사 결과 등)를 바탕으로 당뇨병이 있는지 여부를 판단하는 것입니다. 데이터는 University of California, Irvine 머신러닝 데이터베이스로부터 얻었습니다. 이 문제에 사용된 신경망은 모든 계층에 tansig 뉴런이 있는 8-15-15-2 신경망입니다. 다음 표에는 9개의 알고리즘을 사용하여 이 신경망을 훈련시킨 결과가 요약되어 있습니다. 표의 각 항목은 10번의 시행을 나타내며, 각 시행에서 서로 다른 임의 초기 가중치가 사용되었습니다. 각 케이스마다 신경망은 제곱 오차가 0.05보다 작아질 때까지 훈련되었습니다.

켤레 기울기 알고리즘과 탄력적 역전파 알고리즘 모두 빠르게 수렴했습니다. 이 문제의 결과는 앞에서 다룬 다른 패턴 인식 문제의 결과와 일치합니다. RP 알고리즘은 모든 패턴 인식 문제에 대해 좋은 성능을 보입니다. RP 알고리즘은 시그모이드 함수로 훈련할 때 발생하는 문제를 극복하기 위해 설계되었으므로 타당한 결과입니다. 시그모이드 함수는 중심점에서 멀리 떨어져 동작하는 경우 매우 작은 기울기를 가집니다. 패턴 인식 문제의 경우, 출력 계층에서 시그모이드 전달 함수를 사용하고, 시그모이드 함수의 꼬리에서 신경망의 연산이 이루어질 수 있습니다.

알고리즘

평균 시간(초)비율최소 시간(초) 최대 시간(초)표준편차(초)

RP

323.901.00187.43576.90111.37

SCG

390.531.21267.99487.1775.07

CGB

394.671.22312.25558.2185.38

CGP

415.901.28320.62614.6294.77

OSS

784.002.42706.89936.5276.37

CGF

784.502.42629.421082.20144.63

LM

1028.103.17802.011269.50166.31

BFG

1821.005.621415.803254.50546.36

GDX

7687.0023.735169.2010350.002015.00

다음 그림에는 몇 가지 대표적인 알고리즘에 대해 실행 시간 대비 평균 제곱 오차가 플로팅되어 있습니다. 다른 문제에서와 마찬가지로 SCG 알고리즘과 RP 알고리즘이 빠르게 초기에 수렴하는 것과 LM 알고리즘의 최종 오차가 상대적으로 작은 것을 볼 수 있습니다.

다음 그림은 각 알고리즘 사이의 관계를 더욱 자세히 보여줍니다. 그림에는 평균 제곱 오차 수렴 목표 대비 수렴에 필요한 시간이 플로팅되어 있습니다. 여기서는 BFG 알고리즘은 오차 목표가 줄어들면 성능이 저하되고 LM 알고리즘은 성능이 높아지는 것을 확인할 수 있습니다. 최소 오차 목표를 제외하면 RP 알고리즘이 가장 좋은 성능을 보입니다. 최소 오차 목표에서는 SCG가 더 낫습니다.

요약

위에서 설명한 실험에서 몇 가지 알고리즘 특징을 추론할 수 있습니다. 일반적으로 함수 근사 문제에서는 최대 몇백 개의 가중치를 갖는 신경망의 경우 Levenberg-Marquardt 알고리즘이 가장 빨리 수렴합니다. 이 이점은 매우 정확한 훈련이 요구되는 경우 특히 유용합니다. 많은 경우에 trainlm을 사용하면 테스트된 다른 모든 알고리즘보다 낮은 평균 제곱 오차를 얻을 수 있습니다. 그러나 신경망의 가중치 개수가 늘어나면 trainlm의 이점이 줄어듭니다. 또한, trainlm은 패턴 인식 문제에서 좋은 성능을 보이지 못합니다. trainlm의 저장공간 요구 사항은 테스트된 다른 알고리즘에 비해 높습니다.

trainrp 함수는 패턴 인식 문제에 대해 가장 빠른 알고리즘입니다. 그러나 이 함수는 함수 근사 문제에서는 좋은 성능을 보이지 못합니다. 또한, 오차 목표가 줄어들면 성능이 저하됩니다. 이 알고리즘의 메모리 요구 사항은 고려된 다른 알고리즘에 비해 상대적으로 작습니다.

켤레 기울기 알고리즘, 그중에서도 특히 trainscg는 다양한 문제에 대해, 구체적으로는 가중치의 개수가 많은 신경망에 대해 좋은 성능을 보입니다. SCG 알고리즘은 함수 근사 문제에서는 LM 알고리즘과 거의 동등한 속도를 보이며(큰 신경망에서는 더 빠름) 패턴 인식 문제에서는 trainrp와 거의 동등한 속도를 보입니다. SCG 알고리즘은 오차가 줄어들어도 trainrp만큼 성능이 빠르게 저하되지 않습니다. 켤레 기울기 알고리즘은 메모리 요구 사항이 상대적으로 적당합니다.

trainbfg의 성능은 trainlm의 성능과 비슷합니다. trainlm만큼 많은 저장공간이 필요하지 않긴 하지만, 각 반복에서 역행렬에 상응하는 연산이 필요하므로 신경망의 크기가 늘어나면 연산이 기하급수적으로 늘어납니다.

가변 학습률 알고리즘 traingdx는 일반적으로 다른 방법에 비해 훨씬 느리며, 저장공간 요구 사항이 trainrp와 거의 동일하지만, 일부 문제에서는 유용할 수 있습니다. 경우에 따라 더 느리게 수렴하는 것이 나은 상황도 있습니다. 예를 들어, 조기 중지를 사용하는 경우에는 너무 빠르게 수렴하는 알고리즘을 사용하면 일관되지 않은 결과를 얻을 수 있습니다. 검증 세트의 오차가 최소화되는 점을 오버슈트할 수 있습니다.