د عصبي شبکو سره کار کول: د ډیبګ کولو لپاره چک لیست

د عصبي شبکو سره کار کول: د ډیبګ کولو لپاره چک لیست

د ماشین زده کړې سافټویر محصولاتو کوډ ډیری وختونه پیچلي او خورا ګډوډ وي. په دې کې د کیګونو کشف او له مینځه وړل یو د سرچینې ژور کار دی. حتی تر ټولو ساده فیډفورډ عصبي شبکې د شبکې جوړښت، د وزن پیل کولو، او د شبکې اصلاح کولو لپاره جدي چلند ته اړتیا لري. یوه کوچنۍ تېروتنه کولی شي د ناخوښۍ ستونزې رامینځته کړي.

دا مقاله ستاسو د عصبي شبکو ډیبګ کولو لپاره د الګوریتم په اړه ده.

Skillbox وړاندیز کوي: عملي کورس د پیل څخه د پایتون پراختیا کونکی.

موږ یادونه کوو: د ټولو هابر لوستونکو لپاره - د 10 روبل تخفیف کله چې د هابر پرومو کوډ په کارولو سره د مهارت بکس کوم کورس کې نوم لیکنه وکړئ.

الګوریتم پنځه مرحلې لري:

  • اسانه پیل؛
  • د زیانونو تایید؛
  • د منځنیو پایلو او اړیکو چک کول؛
  • د پیرامیټ تشخیص؛
  • د کار کنټرول.

که یو څه تاسو ته د نورو په پرتله ډیر په زړه پوري ښکاري ، تاسو کولی شئ سمدلاسه دې برخو ته لاړشئ.

اسانه پیل

عصبي شبکه د پیچلي جوړښت ، منظم کولو ، او د زده کړې نرخ مهالویش سره د منظم شبکې په پرتله ډیبګ کول خورا ستونزمن دي. موږ دلته یو څه پیچلي یو ، ځکه چې دا ټکی پخپله په غیر مستقیم ډول د ډیبګ کولو سره تړاو لري ، مګر دا لاهم یو مهم وړاندیز دی.

یو ساده پیل دا دی چې یو ساده ماډل رامینځته کړئ او د ډیټا په یوه سیټ (پوائنټ) کې یې روزنه ورکړئ.

لومړی موږ یو ساده ماډل جوړوو

د چټک پیل کولو لپاره، موږ د یو واحد پټ پرت سره یو کوچنی شبکه جوړوو او وګورئ چې هرڅه سم کار کوي. بیا موږ په تدریجي ډول ماډل پیچلی کوو، د هغې د جوړښت هر نوی اړخ (اضافي پرت، پیرامیټر، او نور) چک کوو، او حرکت کوو.

موږ موډل د ډیټا په یوه سیټ (پوائنټ) کې روزو

ستاسو د پروژې لپاره د ګړندي هوښیارتیا چیک په توګه ، تاسو کولی شئ د روزنې لپاره یو یا دوه ډیټا ټکي وکاروئ ترڅو تایید کړئ چې ایا سیسټم سم کار کوي. عصبي شبکه باید په روزنه او ازموینې کې 100٪ دقت وښیې. که دا قضیه نده، نو بیا یا موډل ډیر کوچنی دی یا تاسو دمخه بګ لرئ.

حتی که هرڅه سم وي، مخکې له دې چې حرکت وکړي د یو یا ډیرو دورو لپاره ماډل چمتو کړئ.

د زیان ارزونه

د ضایعاتو اټکل د ماډل د فعالیت د ښه کولو اصلي لاره ده. تاسو اړتیا لرئ ډاډ ترلاسه کړئ چې زیان د ستونزې لپاره مناسب دی او د زیان دندې په سمه پیمانه درجه بندي شوي. که تاسو له یو څخه ډیر د زیان ډول کاروئ، ډاډ ترلاسه کړئ چې دا ټول د ورته ترتیب څخه دي او په سمه توګه اندازه شوي.

دا مهمه ده چې د لومړنیو زیانونو په اړه پاملرنه وشي. وګورئ چې ریښتینې پایله متوقع پایلې ته څومره نږدې ده که چیرې ماډل د تصادفي اټکل سره پیل شي. IN د اندری کارپاتي کار لاندې وړاندیز کوي:: "ډاډ ترلاسه کړئ چې تاسو هغه پایله ترلاسه کوئ چې تاسو یې تمه لرئ کله چې تاسو د لږ شمیر پیرامیټونو سره پیل کوئ. دا غوره ده چې سمدلاسه د معلوماتو ضایع چیک کړئ (د منظم کولو درجې سره صفر ته ټاکل شوی). د مثال په توګه، د CIFAR-10 لپاره د Softmax کلاسیفیر سره، موږ تمه لرو چې ابتدايي زیان به 2.302 وي ځکه چې د توزیع احتمالي احتمال د هر ټولګي لپاره 0,1 دی (ځکه چې 10 ټولګي شتون لري) او د Softmax ضایع د سم ټولګي منفي احتمالي احتمال دی. لکه −ln (0.1) = 2.302.

د بائنری مثال لپاره، ورته حساب په ساده ډول د هر ټولګیو لپاره جوړ شوی. دلته، د مثال په توګه، معلومات دي: 20٪ 0's او 80٪ 1's. متوقع لومړنی زیان به تر –0,2ln (0,5) –0,8ln (0,5) = 0,693147 پورې وي. که پایله له 1 څخه زیاته وي، دا ښایي دا په ګوته کړي چې د عصبي شبکې وزنونه په سمه توګه متوازن ندي یا ډاټا نورمال نه دي.

د منځنیو پایلو او اړیکو چک کول

د عصبي شبکې ډیبګ کولو لپاره ، دا اړینه ده چې په شبکه کې د پروسو متحرکاتو او د انفرادي مینځنۍ پرتونو رول باندې پوه شئ ځکه چې دوی وصل دي. دلته هغه عام غلطۍ دي چې تاسو ورسره مخامخ شئ:

  • د درجې تازه کولو لپاره غلط څرګندونې؛
  • د وزن تازه کول نه پلي کیږي؛
  • چاودیدونکي تدریجي.

که د تدریجي ارزښتونه صفر وي، دا پدې مانا ده چې په اصلاح کونکي کې د زده کړې کچه خورا ورو ده، یا دا چې تاسو د تدریجي تازه کولو لپاره د غلط بیان سره مخ یاست.

سربیره پردې ، دا اړینه ده چې د هر پرتونو د فعالولو دندو ، وزنونو او تازه کولو ارزښتونو څارنه وکړئ. د مثال په توګه، د پیرامیټر تازه کولو اندازه (وزن او تعصب) باید 1-e3 وي.

دلته یوه پدیده شتون لري چې نوم یې "Dying ReLU" یا "د تدریجي ستونزې له منځه تلل"، کله چې ReLU نیورون به د خپل وزن لپاره د لوی منفي تعصب ارزښت زده کولو وروسته صفر تولید کړي. دا نیورونونه هیڅکله د معلوماتو په هیڅ ځای کې بیا نه ویشتل کیږي.

تاسو کولی شئ د شمیرې طریقې په کارولو سره د تدریجي نږدې کولو له لارې د دې غلطیو پیژندلو لپاره د تدریجي چک کولو څخه کار واخلئ. که دا محاسبه شوي درجې ته نږدې وي، نو بیا پروپیګیشن په سمه توګه پلي شوی. د تدریجي چیک رامینځته کولو لپاره ، دا عالي سرچینې د CS231 څخه چیک کړئ دلته и دلتهاو هم ورسره درس انډریو نګ په دې موضوع.

فیضان شیخ د عصبي شبکې لیدلو لپاره درې اصلي میتودونه په ګوته کوي:

  • ابتدايي ساده میتودونه دي چې موږ ته د روزل شوي ماډل عمومي جوړښت ښیي. پدې کې د عصبي شبکې انفرادي پرتونو د شکلونو یا فلټرونو محصول او په هر پرت کې پیرامیټونه شامل دي.
  • د فعالیت پر بنسټ. په دوی کې، موږ د انفرادي نیورونونو یا د نیورون ګروپونو فعالیتونو درک کوو ترڅو د دوی دندو پوه شي.
  • د درجې پر بنسټ. دا ميتودونه د تدريجي تدريس سره سمون لري کوم چې د ماډل روزنې د مخکني او شاته پاسونو څخه جوړ شوي دي (په شمول د سالم نقشې او د ټولګي فعالولو نقشې).

د انفرادي پرتونو د فعالیتونو او ارتباطاتو لیدلو لپاره ډیری ګټورې وسیلې شتون لري، د بیلګې په توګه. ConX и ټینسربورډ.

د عصبي شبکو سره کار کول: د ډیبګ کولو لپاره چک لیست

د پیرامیټ تشخیص

عصبي شبکې ډیری پیرامیټونه لري چې یو له بل سره اړیکه لري، کوم چې اصلاح کول پیچلي کوي. په حقیقت کې ، دا برخه د متخصصینو لخوا د فعالې څیړنې موضوع ده ، نو لاندې وړاندیزونه باید یوازې د مشورې په توګه په پام کې ونیول شي ، د پیل ټکي له کوم څخه چې رامینځته کیږي.

د بسته اندازه (د بیچ اندازه) - که تاسو غواړئ د بیچ اندازه دومره لویه وي چې دقیقې غلطۍ تدریجي اټکلونه ترلاسه کړئ ، مګر ستاسو د شبکې منظم کولو لپاره د سټوچیسټیک ګریډینټ نزول (SGD) لپاره کافي کوچنۍ وي. د کوچنۍ بستې اندازې به د روزنې پروسې په جریان کې د شور له امله د ګړندي همغږۍ لامل شي او د اصلاح کولو نور مشکلات. دا په ډیر تفصیل سره تشریح شوی دلته.

د زده کړې کچه - ډیر ټیټ به د ورو همغږي کیدو یا په محلي مینیما کې د پاتې کیدو خطر لامل شي. په ورته وخت کې، د زده کړې لوړه کچه به د اصلاح کولو انحراف لامل شي ځکه چې تاسو د ضایع فعالیت د ژورې مګر تنګ برخې له لارې د کود کولو خطر لرئ. د عصبي شبکې روزنې پرمهال د کمولو لپاره د سرعت مهالویش کارولو هڅه وکړئ. د CS231n سره تر نیټې پورې دې ستونزې ته یوه لویه برخه ځانګړې شوې ده.

تدریجي ټوټه کول  - په اعظمي ارزښت یا حاشیه نورم کې د بیرته خپریدو پرمهال د پیرامیټر ګریډینټونو کمول. د هر ډول چاودیدونکي ګریډینټونو ستونزې حل کولو لپاره ګټور چې تاسو ممکن په دریم ټکي کې ورسره مخ شئ.

د بسته نورمال کول - د هرې پرت ان پټ ډیټا نورمال کولو لپاره کارول کیږي ، کوم چې موږ ته اجازه راکوي د داخلي کوواریټ بدلون ستونزه حل کړو. که تاسو Dropout او Batch Norma یوځای کاروئ، دا مقاله وګورئ.

Stochastic gradient decent (SGD) - د SGD ډیری ډولونه شتون لري چې حرکت، د تطبیق وړ زده کړې نرخونه او د نیسټروف میتود کاروي. په هرصورت، له دوی څخه هیڅ یو د زده کړې موثریت او عمومي کولو دواړو شرایطو کې روښانه ګټه نلري (تفصيل دلته).

منظم کول - د عمومي کولو وړ ماډل جوړولو لپاره خورا مهم دی، ځکه چې دا د ماډل پیچلتیا یا خورا پیرامیټر ارزښتونو لپاره جزا اضافه کوي. دا یوه لاره ده چې د ماډل توپیر کم کړي پرته له دې چې د پام وړ تعصب زیات کړي. نور تفصيلي معلومات - دلته.

د هرڅه پخپله ارزولو لپاره ، تاسو اړتیا لرئ منظم کول غیر فعال کړئ او پخپله د ډیټا ضایع کیدو درجه چیک کړئ.

وتل د ګڼې ګوڼې د مخنیوي لپاره ستاسو د شبکې منظمولو بله طریقه ده. د روزنې په جریان کې، پریښودل یوازې د یو ځانګړي احتمال p (هایپرپرامیټر) سره د نیورون فعالیت ساتلو یا په مخالف حالت کې صفر ته د تنظیم کولو سره ترسره کیږي. د پایلې په توګه، شبکه باید د هرې روزنې بستې لپاره د پیرامیټونو مختلف فرعي سیټ وکاروي، کوم چې په ځانګړو پیرامیټونو کې بدلونونه کموي چې غالب کیږي.

مهم: که تاسو د وتلو او بیچ نورمال کولو دواړه کاروئ، د دې عملیاتو ترتیب په اړه محتاط اوسئ یا حتی د دوی یوځای کارولو سره. دا ټول اوس هم په فعاله توګه بحث او ضمیمه کیږي. دلته د دې موضوع په اړه دوه مهم بحثونه دي په Stackoverflow کې и ارکسیو.

د کار کنټرول

دا د کار فلو او تجربو مستند کولو په اړه دی. که تاسو هیڅ شی مستند نه کړئ، تاسو ممکن هیر کړئ، د بیلګې په توګه، د زده کړې کچه یا د ټولګي وزنونه کارول کیږي. د کنټرول څخه مننه، تاسو کولی شئ په اسانۍ سره پخوانی تجربې بیاکتنه او بیا تولید کړئ. دا تاسو ته اجازه درکوي د دوه اړخیزو تجربو شمیر کم کړئ.

په هرصورت، د کار د لوی مقدار په صورت کې لاسي اسناد یو ستونزمن کار کیدی شي. دا هغه ځای دی چې د Comet.ml په څیر وسیلې راځي ترڅو تاسو سره په اتوماتيک ډول د ډیټاسیټونو ، کوډ بدلونونو ، تجربوي تاریخ ، او تولید ماډلونو کې مرسته وکړي ، پشمول ستاسو د ماډل په اړه کلیدي معلومات (هایپر پیرامیټرونه ، د ماډل فعالیت میټریکونه ، او د چاپیریال معلومات).

یو عصبي شبکه د کوچنیو بدلونونو لپاره خورا حساس کیدی شي، او دا به د ماډل فعالیت کې کمښت المل شي. ستاسو د کار تعقیب او مستند کول لومړی ګام دی چې تاسو کولی شئ خپل چاپیریال او ماډلینګ معیاري کولو لپاره واخلئ.

د عصبي شبکو سره کار کول: د ډیبګ کولو لپاره چک لیست

زه امید لرم چې دا پوسټ ستاسو لپاره د پیل ټکی کیدی شي ستاسو د عصبي شبکې ډیبګ کول پیل کړئ.

Skillbox وړاندیز کوي:

سرچینه: www.habr.com

Add a comment