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

AI 101

Автомат кодлогч гэж юу вэ?

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

Хэрэв та хараа хяналтгүй сурах арга барилын талаар өмнө нь уншиж байсан бол "Та" гэсэн нэр томьёотой таарсан байх.автомат кодчилол”. Автомат кодлогч нь хяналтгүй сургалтын загварыг боловсруулах үндсэн аргуудын нэг юм. Гэхдээ автомат кодлогч гэж яг юу вэ?

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

Автомат кодлогч гэж юу вэ?

Автомат кодлогч мэдрэлийн сүлжээнүүд юм. Мэдрэлийн сүлжээ нь олон давхаргаас бүрдэх ба автомат кодлогчийн тодорхойлогч тал нь оролтын давхаргууд нь гаралтын давхаргатай яг ижил хэмжээний мэдээллийг агуулдаг. Оролтын болон гаралтын давхарга нь яг ижил тооны нэгжтэй байгаагийн шалтгаан нь автомат кодлогч нь оролтын өгөгдлийг хуулбарлах зорилготой юм. Энэ нь өгөгдөлд дүн шинжилгээ хийж, хяналтгүй байдлаар сэргээсний дараа хуулбарыг гаргадаг.

Автомат кодлогчоор дамждаг өгөгдөл нь зөвхөн оролтоос гаралт руу шууд зурагдагддаггүй бөгөөд сүлжээ нь зөвхөн оролтын өгөгдлийг хуулж авдаггүй гэсэн үг юм. Автомат кодлогч гурван бүрэлдэхүүн хэсэгтэй: өгөгдлийг шахдаг кодчилол (оролт) хэсэг, шахсан өгөгдлийг зохицуулдаг бүрэлдэхүүн хэсэг (эсвэл гацаа) болон декодчилогч (гаралт) хэсэг. Өгөгдлийг автомат кодлогч руу оруулах үед үүнийг кодлож, дараа нь жижиг хэмжээтэй болгон шахдаг. Дараа нь сүлжээг кодлогдсон/шахсан өгөгдөл дээр сургаж, энэ өгөгдлийн дахин боловсруулалтыг гаргадаг.

Та яагаад түүнд өгсөн өгөгдлийг дахин бүтээхийн тулд сүлжээг сургахыг хүсч байна вэ? Шалтгаан нь сүлжээ нь оролтын өгөгдлийн "мөн чанар" буюу хамгийн чухал шинж чанарыг сурдаг. Сүлжээг сургасны дараа тодорхой зорилтот функцуудыг нэмж хасах замаар ижил төстэй өгөгдлийг нэгтгэх боломжтой загварыг үүсгэж болно. Жишээлбэл, та мөхлөгт зураг дээр автомат кодлогчийг сургаж, дараа нь сургагдсан загварыг ашиглан зураг дээрх үр тариа/дуу чимээг арилгах боломжтой.

Автомат кодлогчийн архитектур

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

Зураг: Микела Масси Викимедиа Commons,(https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

Өмнө дурьдсанчлан, автомат кодлогчийг үндсэндээ кодлогч, бөглөрөл, декодлогч гэсэн гурван өөр бүрэлдэхүүн хэсэгт хувааж болно.

Автомат кодлогчийн кодлогч хэсэг нь ихэвчлэн дамжуулагч, нягт холбогдсон сүлжээ юм. Кодчлох давхаргуудын зорилго нь оролтын өгөгдлийг авч, түүнийг далд орон зайн дүрслэл болгон шахаж, хэмжээсийг багасгасан өгөгдлийн шинэ дүрслэлийг бий болгох явдал юм.

Кодын давхаргууд буюу гацаа нь өгөгдлийн шахсан дүрслэлийг зохицуулдаг. Түгжрэлийн код нь ажиглагдсан өгөгдлийн хамгийн хамааралтай хэсгийг тодорхойлох, эсвэл өгөгдлийг сэргээн босгоход хамгийн чухал өгөгдлийн шинж чанаруудыг өөрөөр хэлэхийн тулд нарийн боловсруулсан болно. Энд байгаа зорилго нь өгөгдлийн аль талыг нь хадгалах, аль нь устгаж болохыг тодорхойлох явдал юм. Блокнозын код нь дүрслэлийн хэмжээ (төлөөллийн хэмжээ хэр нягт байна) болон хувьсагч/боломжийн хамаарал гэсэн хоёр өөр хүчин зүйлийг тэнцвэржүүлэх шаардлагатай. Бөглөрөл нь сүлжээний жин ба хазайлт дээр элементийн дагуу идэвхжүүлэлтийг гүйцэтгэдэг. Бөглөрөх давхаргыг заримдаа далд төлөөлөл эсвэл далд хувьсагч гэж нэрлэдэг.

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

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

Автомат кодлогчийн шинж чанарууд

Янз бүрийн төрлийн автомат кодлогч байдаг боловч тэдгээр нь тэдгээрийг нэгтгэдэг тодорхой шинж чанартай байдаг.

Автомат кодлогч автоматаар сурдаг. Тэдгээр нь шошго шаарддаггүй бөгөөд хэрэв хангалттай өгөгдөл өгсөн бол тодорхой төрлийн оролтын өгөгдөл дээр өндөр гүйцэтгэлд хүрэхийн тулд автомат кодлогч авахад хялбар байдаг.

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

Автомат кодлогчийг зохион бүтээхдээ машин сургалтын инженерүүд дөрвөн өөр загварын гиперпараметрт анхаарлаа хандуулах хэрэгтэй: кодын хэмжээ, давхаргын дугаар, давхарга бүрт зангилаа, алдагдлын функц.

Кодын хэмжээ нь сүлжээний дунд хэсгийг хэдэн зангилаа эхлэхийг шийддэг бөгөөд цөөн тооны зангилаа нь өгөгдлийг илүү шахдаг. Гүн автомат кодлогчийн хувьд давхаргын тоо нь инженерийн зөв гэж үзсэн тоо байж болох ч кодлогч ажиллах тусам давхарга дахь зангилааны тоо буурах ёстой. Үүний зэрэгцээ, декодчилогч нь эсрэгээрээ байгаа бөгөөд декодчилогч давхаргууд эцсийн давхаргад ойртох тусам нэг давхарга дахь зангилааны тоо нэмэгдэх ёстой гэсэн үг юм. Эцэст нь автомат кодлогчийн алдагдлын функц нь ихэвчлэн хоёртын кросс-энтропи эсвэл дундаж квадрат алдаа юм. Хоёртын кросс энтропи нь өгөгдлийн оролтын утгууд 0-1 мужид байгаа тохиолдолд тохиромжтой.

Автомат кодлогчийн төрлүүд

Дээр дурдсанчлан, сонгодог автомат кодлогчийн архитектурт өөрчлөлтүүд байдаг. Өөр өөр автомат кодлогчийн архитектуруудыг авч үзье.

Сийрэг

Зураг: Микела Масси Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

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

Гэрээт

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

Зөрчилдөөнтэй

Convolutional autoencoders өгөгдлийг дэд хэсгүүдэд хувааж, дараа нь эдгээр дэд хэсгүүдийг нэгтгэн нэгтгэсэн энгийн дохио болгон хөрвүүлэн өгөгдлийн шинэ дүрслэлийг үүсгэх замаар оролтын өгөгдлийг кодчил. Convolution neural networks-тэй адил convolutional autoencoder нь зургийн өгөгдлийг сурах чиглэлээр мэргэшсэн бөгөөд энэ нь зургийн бүх хэсгийг хэсэг хэсгээр нь хөдөлгөдөг шүүлтүүрийг ашигладаг. Кодлох давхаргын үүсгэсэн кодчилол нь зургийг дахин бүтээх, дүрсийг тусгах эсвэл зургийн геометрийг өөрчлөхөд ашиглаж болно. Шүүлтүүрийг сүлжээгээр сурсаны дараа тэдгээрийг зургийн онцлогийг задлахад хангалттай ижил төстэй оролтод ашиглаж болно.

Denoising

Зураг: Wikimedia Commons-ээр дамжуулан MAL, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

Автокодлогчийн дууг арилгах кодчилолд дуу чимээг оруулснаар анхны оролтын өгөгдлийн эвдэрсэн хувилбар болох кодчилол үүсдэг. Өгөгдлийн энэ эвдэрсэн хувилбар нь загварыг сургахад ашиглагддаг боловч алдагдлын функц нь гаралтын утгыг эвдэрсэн оролттой биш харин анхны оролттой харьцуулдаг. Зорилго нь сүлжээ нь зургийн эх, эвдрэлгүй хувилбарыг хуулбарлах боломжтой болно. Сүлжээ нь эвдэрсэн өгөгдлийг анхны өгөгдөлтэй харьцуулснаар өгөгдлийн аль шинж чанар нь хамгийн чухал, аль нь чухал биш / эвдрэл болохыг олж мэдэх болно. Өөрөөр хэлбэл, загвар нь эвдэрсэн зургийг арилгахын тулд зургийн өгөгдлийн чухал шинж чанаруудыг задалсан байх ёстой.

Хувьсах

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

 

Загвар нь салангид утгын оронд Гауссын тархалт хэлбэрээр шинж чанар эсвэл дүрсийг сурдаг тул шинэ зураг үүсгэхэд ашиглах боломжтой. Гауссын тархалтыг вектор үүсгэхийн тулд дээж авч, код тайлах сүлжээнд тэжээгддэг бөгөөд энэ нь дээжийн энэ вектор дээр үндэслэн дүрсийг гаргадаг. Үндсэндээ загвар нь сургалтын зургийн нийтлэг шинж чанаруудыг сурч, тэдгээрт тохиолдох магадлалыг өгдөг. Магадлалын тархалтыг дараа нь зургийг урвуу инженерчилж, анхны, сургалтын зурагтай төстэй шинэ зургуудыг бий болгоход ашиглаж болно.

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

Автомат кодлогч програмууд

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

Өгөгдлийн шуугианыг арилгах гэдэг нь зураг дээрх үр тариа/дуу чимээг арилгахын тулд автомат кодлогч ашиглах явдал юм. Үүний нэгэн адил, автомат кодлогчийг бүдгэрсэн зураг, дүрс дутуу хэсэг гэх мэт бусад төрлийн зургийн гэмтлийг засахад ашиглаж болно. Хэмжээг багасгах нь өндөр хүчин чадалтай сүлжээнүүдэд зургийн ашигтай шинж чанаруудыг сурахад тусалдаг бөгөөд энэ нь автомат кодлогчийг бусад төрлийн мэдрэлийн сүлжээний сургалтыг нэмэгдүүлэхэд ашиглах боломжтой гэсэн үг юм. Автокодлогчийг бусад загваруудыг сургах сургалтын бусад мэдээллийн багцын онцлогийг тодорхойлоход ашиглаж болох тул онцлог шинж чанарыг задлахад энэ нь бас үнэн юм.

Дүрс үүсгэхийн хувьд авто кодлогчийг хуурамч хүний ​​дүрс эсвэл хөдөлгөөнт дүр үүсгэхэд ашиглаж болох бөгөөд энэ нь нүүр таних системийг зохион бүтээх эсвэл хөдөлгөөнт дүрсийг автоматжуулахад зориулагдсан програмуудтай.

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

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