stub Backpropagation гэж юу вэ? - Нэгдсэн.AI
бидэнтэй хамт холбоно
AI мастер анги:

AI 101

Backpropagation гэж юу вэ?

mm
шинэчлэгдсэн on

Backpropagation гэж юу вэ?

Гүн сургалтын системүүд нь маш нарийн төвөгтэй хэв маягийг сурах чадвартай бөгөөд жингээ тохируулах замаар үүнийг хийдэг. Гүн мэдрэлийн сүлжээний жинг яг яаж тохируулдаг вэ? Тэдгээрийг дамжуулан тохируулдаг үйл явц гэж нэрлэдэг буцаан тархалт. Буцах тархалтгүйгээр гүн мэдрэлийн сүлжээ нь зургийг таних, байгалийн хэлийг тайлбарлах зэрэг ажлыг гүйцэтгэх боломжгүй болно. Буцах тархалт хэрхэн ажилладагийг ойлгох нь гүн мэдрэлийн сүлжээг ерөнхийд нь ойлгоход чухал ач холбогдолтой тул буцах тархалтын талаар ярилцаж, сүлжээний жинг тохируулах процессыг хэрхэн ашиглаж байгааг харцгаая.

Буцах тархалтыг ойлгоход хэцүү байж болох ба буцаан тархалтыг хийхэд ашигласан тооцоо нь нэлээд төвөгтэй байж болно. Энэ нийтлэл нь нарийн төвөгтэй математикийн арга замыг бага зэрэг ашиглан буцааж тархалтын талаар зөн совинтой ойлголт өгөхийг хичээх болно. Гэсэн хэдий ч арын тархалтын арын математикийн талаар зарим талаар ярилцах шаардлагатай байна.

Буцах тархалтын зорилго

Буцах тархалтын зорилгыг тодорхойлж эхэлцгээе. Гүн мэдрэлийн сүлжээний жин нь мэдрэлийн сүлжээний нэгжүүдийн хоорондын холболтын хүч юм. Мэдрэлийн сүлжээг бий болгоход нэг давхарга дахь нэгжүүд түүнтэй холбогдсон давхаргад хэрхэн холбогддог талаар таамаглал дэвшүүлдэг. Мэдрэлийн сүлжээгээр өгөгдөл шилжих үед жинг тооцоолж, таамаглал дэвшүүлдэг. Өгөгдөл нь сүлжээний эцсийн давхаргад хүрэхэд функцууд нь өгөгдлийн багц дахь ангиудтай хэрхэн холбоотой болохыг таамагладаг. Урьдчилан таамагласан утгууд болон бодит утгуудын хоорондох ялгаа нь алдагдал/алдаа, буцаан тархалтын зорилго юм. алдагдлыг бууруулахад оршино. Энэ нь сүлжээний жинг тохируулах замаар гүйцэтгэсэн бөгөөд таамаглалыг оролтын шинж чанаруудын хоорондын бодит хамааралтай илүү төстэй болгодог.

Гүн мэдрэлийн сүлжээг сургах

Буцах тархалтыг хийхээс өмнө a мэдрэлийн сүлжээ, мэдрэлийн сүлжээний тогтмол/урагш сургалтын дамжуулалтыг хийх ёстой. Мэдрэлийн сүлжээг үүсгэх үед жингийн багцыг эхлүүлдэг. Сүлжээг сургах тусам жингийн үнэ цэнэ өөрчлөгдөнө. Мэдрэлийн сүлжээний урагшлах сургалтын дамжуулалтыг нейроны идэвхжүүлэлт, нейроны дамжуулалт, урагш тархалт гэсэн гурван салангид алхамаар төсөөлж болно.

Гүн мэдрэлийн сүлжээг сургахдаа бид математикийн олон функцийг ашиглах хэрэгтэй. Гүн мэдрэлийн сүлжээн дэх нейронууд нь ирж буй өгөгдөл болон зангилааг идэвхжүүлэхэд шаардлагатай утгыг тодорхойлдог идэвхжүүлэх функцээс бүрддэг. Нейроны идэвхжүүлэлтийн утгыг хэд хэдэн бүрэлдэхүүн хэсгүүдээр тооцдог бөгөөд энэ нь оролтын жигнэсэн нийлбэр юм. Жин ба оролтын утга нь идэвхжүүлэлтийг тооцоолоход ашиглаж буй зангилааны индексээс хамаарна. Идэвхжүүлэх утгыг тооцоолохдоо өөр нэг тоог анхаарч үзэх хэрэгтэй, хэвийсэн утгыг. Хязгаарлалтын утгууд нь хэлбэлздэггүй тул жин, оролттой хамт үржүүлдэггүй, зүгээр л нэмдэг. Энэ бүхэн нь идэвхжүүлэлтийн утгыг тооцоолоход дараах тэгшитгэлийг ашиглаж болно гэсэн үг юм.

Идэвхжүүлэх = нийлбэр (жин * оролт) + хазайлт

Нейрон идэвхжсэний дараа нейроны бодит гаралтын гаралт ямар байхыг тодорхойлохын тулд идэвхжүүлэх функцийг ашигладаг. Өөр өөр идэвхжүүлэх функцууд нь сургалтын янз бүрийн даалгаварт оновчтой байдаг боловч түгээмэл хэрэглэгддэг идэвхжүүлэх функцууд нь sigmoid функц, Tanh функц, ReLU функцийг агуулдаг.

Хүссэн идэвхжүүлэх функцээр дамжуулан идэвхжүүлэлтийн утгыг ажиллуулах замаар нейроны гаралтыг тооцоолсны дараа урагш тархалт хийгдэнэ. Урагшаа тархалт нь зөвхөн нэг давхаргын гаралтыг авч дараагийн давхаргын оролт болгох явдал юм. Дараа нь шинэ оролтуудыг идэвхжүүлэх шинэ функцуудыг тооцоолоход ашигладаг бөгөөд энэ үйлдлийн гаралтыг дараагийн давхаргад дамжуулдаг. Энэ үйл явц нь мэдрэлийн сүлжээний төгсгөл хүртэл үргэлжилдэг.

Сүлжээнд буцаж тархах

Буцах үйл явц нь загвар өмсөгчдийн сургалтын дамжуулалтын эцсийн шийдвэрийг гаргаж, дараа нь эдгээр шийдвэрийн алдааг тодорхойлдог. Сүлжээний гаралт/шийдвэр болон сүлжээний хүлээгдэж буй/хүссэн үр дүнг харьцуулан алдааг тооцдог.

Сүлжээний шийдвэрийн алдааг тооцоолсны дараа энэ мэдээллийг сүлжээгээр дамжуулан буцааж тарааж, сүлжээний параметрүүдийг замын дагуу өөрчилдөг. Сүлжээний жинг шинэчлэхэд ашигладаг арга нь тооцоололд, ялангуяа гинжин дүрэмд суурилдаг. Гэсэн хэдий ч арын тархалтын санааг ойлгохын тулд тооцооллын талаар ойлголттой байх шаардлагагүй. Нейроноос гаралтын утгыг өгөх үед гаралтын утгын налууг дамжуулах функцээр тооцоолж, гарал үүсэлтэй гаралтыг гаргадаг гэдгийг л мэдэх хэрэгтэй. Буцах тархалтыг хийхдээ тодорхой нейроны алдааг дараах байдлаар тооцоолно томъёо:

алдаа = (хүлээгдэж буй_гаралт – бодит_гаралт) * нейроны гаралтын утгын налуу

Гаралтын давхарга дахь мэдрэлийн эсүүд дээр ажиллахдаа ангийн утгыг хүлээгдэж буй утга болгон ашигладаг. Алдааг тооцоолсны дараа алдааг далд давхарга дахь нейронуудын оролт болгон ашигладаг бөгөөд энэ далд давхаргын алдаа нь гаралтын давхаргад олдсон нейронуудын жигнэсэн алдаа гэсэн үг юм. Алдааны тооцоо нь жингийн сүлжээний дагуу сүлжээгээр хойшоо дамждаг.

Сүлжээний алдааг тооцоолсны дараа сүлжээн дэх жинг шинэчлэх шаардлагатай. Өмнө дурьдсанчлан, алдааг тооцоолох нь гаралтын утгын налууг тодорхойлох явдал юм. Налууг тооцоолсны дараа сүлжээн дэх жинг тохируулахын тулд градиент уналт гэж нэрлэгддэг процессыг ашиглаж болно. Градиент гэдэг нь налуугийн өнцөг/эгц байдлыг хэмжиж болно. Налууг тооцоолохдоо "y over" эсвэл "өсөлт" -ийг "гүйлт" дээр зурна. Мэдрэлийн сүлжээ болон алдааны хурдны хувьд "y" нь тооцоолсон алдаа, харин "x" нь сүлжээний параметрүүд юм. Сүлжээний параметрүүд нь тооцоолсон алдааны утгуудтай хамааралтай бөгөөд сүлжээний жинг тохируулах тусам алдаа нэмэгдэж эсвэл буурдаг.

"Градиент уналт" нь жинг шинэчлэх үйл явц бөгөөд ингэснээр алдааны түвшин буурах болно. Backpropagation нь мэдрэлийн сүлжээний параметрүүд болон алдааны түвшин хоорондын хамаарлыг урьдчилан таамаглахад ашиглагддаг бөгөөд энэ нь сүлжээг градиент уруудахад тохируулдаг. Сүлжээг градиент уруултай сургах нь урагш тархах замаар жинг тооцоолох, алдааг буцааж тараах, дараа нь сүлжээний жинг шинэчлэх явдал байв.

Мэргэшсэн блоггер, программист Машины сургалт болон Гүн сурах сэдвүүд. Даниел бусад хүмүүст хиймэл оюун ухааны хүчийг нийгмийн сайн сайхны төлөө ашиглахад тусална гэж найдаж байна.