主要内容

붓꽃군집화

이예제에서는자기조직화맵신경망이붓꽃을위상에따라클래스별로군집화하여종을판별하고추가분석을위해어떤툴을제공하는지보여줍니다。

문제:붓꽃군집화하기

이예제에서는붓꽃을자연분류별로군집화하여유사한종을한그룹으로묶는신경망을만들어봅니다。각붓꽃은다음과같은4개의특징으로설명됩니다。

  • 꽃받침길이(단위:cm)

  • 꽃받침너비(단위:cm)

  • 꽃잎길이(단위:cm)

  • 꽃잎너비(단위:cm)

이문제는샘플간유사성을기준으로샘플을클래스로그룹화하는군집화문제의한예입니다。여기서는알려진입력값에대해클래스정의를만들뿐아니라알려지지않은입력값도분류하는신경망을만들어봅니다。

자기조직화맵신경망을사용해야하는이유

자기조직화맵(som)은분류를만드는데매우효과적입니다。또한이분류는위상정보,즉어느클래스가다른클래스와가장유사한지에대한정보를가지고있습니다。자기조직화맵은원하는수준의세부정보를갖도록만들어질수있습니다。자기조직화맵은서로연결된복잡한형태의다차원특징공간에있는데이터를군집화할때특히적합합니다。따라서붓꽃을군집화하기에적합합니다。

꽃4개의특성의이SOM입력값으로사용되며SOM은이들입력값을2차원뉴런계층에매핑합니다。

데이터준비하기

군집화문제를위한데이터를입력행렬X로구성하여som에사용할데이터를준비합니다。

입력행렬의각我번째열은개별꽃에서관측된4개의측정값을나타내는4개의요소를갖습니다。

이러한데이터셋을다음과같이불러옵니다。

X = iris_dataset;

입력값X의크기를시할수있습니다。

X는150개의열을갖는것을볼수있습니다。이들열은150개의붓꽃특성세트를나타냅니다。그리고4개의측정값에대응하는4개의행을갖습니다。

大小(x)
ans =1×2150年4

신경망을사용하여군집화하기

다음단계는군집화를학습할신경망을만드는것입니다。

selforgmap은샘플을분류하는자기조직화맵을만들며,이때계층의각차원의뉴런의개수를선택함으로써상세수준을정할수있습니다。

이예제에서는8×8육각형그리드에64개뉴련을정렬하는2차원계층을사용해보겠습니다。일반적으로,뉴런이많을수록더상세해지고,차원이많을수록더복잡한특징공간의위상을모델링할수있습니다。

신경망이아직입력데이터에맞춰구성되지않았으므로입력값의크기는0입니다。이구성작업은신경망을훈련시킬때수행됩니다。

Net = selforgmap([8 8]);视图(净)

이제火车을사용하여신경망을최적화할준비가되었습니다。

神经网络训练툴은훈련중인신경망과훈련에사용되는알고리즘을표시합니다。또한훈련중의상태를,시하며훈련을중지시킨기준을녹색으로강조,시하며훈련을중지시킨기준을녹색으로강조,시합니다。

하단의버튼을클릭하면유용한플롯이열립니다。플롯은훈련하는도중과훈련을마친후에열수있습니다。알고리즘이름과플롯버튼옆에있는링크를클릭하면해당항목에대한문서가열립니다。

[net,tr] =火车(网,x);

{

여기서자기조직화맵은각훈련입력값의클래스벡터를계산하는데사용됩니다。이들분류는알려진꽃들의특징공간을포괄하며,이제이를사용하여새로운꽃을분류할수있게됩니다。신경망의출력값은64x150행렬입니다。각我번째열은각我번째입력벡터의j번째군집을나타내며,입력벡터의j번째요소는1입니다。

함수vec2ind는각벡터에대해출력값이1뉴런의덱스를반환합니다。64개뉴런으로通讯录현되는64개군집이므로通讯录덱스는1에서64사이입니다。

Y = net(x);Cluster_index = vec2ind(y);

plotsomtop는8x8육각형그리드에배치된64개뉴런의자기조직화맵위상을플로팅합니다。각뉴런은꽃의서로다른클래스를표현하도록학습했으며,인접한뉴런들은대개유사한클래스를나타냅니다。

plotsomtop(净)

{

plotsomhits는각꽃의클래스를계산하고해당클래스에속한꽃의개수를시합니다。적중수가큰뉴런영역은특징공간에서밀도가높은유사한영역을나타내는클래스입니다。적중수가적은역은특징공간에서밀도가낮은역을나타냅니다。

plotsomhits(净,x)

{

plotsomnc는뉴런이웃연결을보여줍니다。이웃들은일반적으로비슷한샘플을분류합니다。

plotsomnc(净)

{

plotsomnd는각뉴런의클래스와이웃간의거리(유클리드거리)를보여줍니다。밝은연결은입력공간에서강하게연결된역을나타냅니다。반면어두운연결은특징공간의영역이서로멀리떨어져있고그사이에꽃이없거나적은클래스입니다。

입력공간에서큰영역들을분리하고있는어두운연결끼리이어진긴경계는경계의양쪽에있는클래스들이서로매우다른특징을갖는꽃을나타냄을의미합니다。

plotsomnd(净)

{

plotsomplanes는4개의입력특징각각에대한가중치평면을보여줍니다。가중치평면은각입력값을8×8육각형그리드위64개의뉴런에연결하는가중치를시각화한것입니다。색이어두울수록큰가중치를나타냅니다。두입력값이비슷한가중치평면을갖는다는것은(색그라데이션이같거나반대인경우)상관관계가높음을의미합니다。

plotsomplanes(净)

{

4이예제에서는붓꽃을가지특성을기준으로군집화하는신경망을설계하는방법을살펴보았습니다。

신경망과그응용분야에대해더알아보려면다른예제와문서를살펴보십시오。