เครือข่ายประสาทจะวาดภาพ Ostagram: บริการบนโครงข่ายประสาทเทียมที่รวมภาพถ่ายและเครื่องประดับเป็นผลงานชิ้นเอกทางศิลปะ

ตั้งแต่ในเดือนสิงหาคม 2015 นักวิจัยชาวเยอรมันจาก University of Tübingen ได้นำเสนอความเป็นไปได้ในการถ่ายโอนสไตล์ ศิลปินที่มีชื่อเสียงในรูปภาพอื่น ๆ เริ่มปรากฏบริการที่สร้างรายได้จากโอกาสนี้ เปิดตัวในตลาดตะวันตกและในตลาดรัสเซีย - สำเนาที่สมบูรณ์

เพื่อคั่นหน้า

แม้ว่า Ostagram จะเปิดตัวในเดือนธันวาคม แต่ก็เริ่มได้รับความนิยมอย่างรวดเร็วในโซเชียลเน็ตเวิร์กในช่วงกลางเดือนเมษายน ในเวลาเดียวกัน ณ วันที่ 19 เมษายน มีผู้คนในโครงการ VKontakte น้อยกว่าหนึ่งพันคน

ในการใช้บริการ คุณต้องเตรียมภาพสองภาพ: ภาพถ่ายที่ต้องผ่านการประมวลผล และภาพที่มีตัวอย่างสไตล์ที่จะวางซ้อนบนภาพต้นฉบับ

บริการนี้มีเวอร์ชันฟรี: สร้างภาพที่มีความละเอียดขั้นต่ำสูงสุด 600 พิกเซลตามด้านที่ยาวที่สุดของภาพ ผู้ใช้ได้รับผลลัพธ์ของการใช้ตัวกรองซ้ำกับรูปภาพเพียงครั้งเดียว

มีเวอร์ชันที่ต้องชำระเงิน 2 เวอร์ชัน ได้แก่ เวอร์ชันพรีเมียมสร้างภาพได้สูงสุด 700 พิกเซลในด้านที่ยาวที่สุด และใช้การประมวลผลโครงข่ายประสาทเทียมซ้ำ 600 ครั้งกับรูปภาพ (ยิ่งทำซ้ำมาก การประมวลผลยิ่งน่าสนใจและเข้มข้นมากขึ้น) ภาพดังกล่าวหนึ่งภาพจะมีราคา 50 รูเบิล

ในเวอร์ชัน HD คุณสามารถปรับจำนวนการวนซ้ำได้: 100 จะมีราคา 50 รูเบิลและ 1,000 - 250 รูเบิล ในกรณีนี้ภาพจะมีความละเอียดสูงสุด 1200 พิกเซลในด้านที่ยาวที่สุดและสามารถใช้พิมพ์บนผืนผ้าใบได้: Ostagram ให้บริการนี้พร้อมจัดส่งตั้งแต่ 1,800 รูเบิล

ในเดือนกุมภาพันธ์ ตัวแทนของ Ostagram จะไม่ยอมรับคำขอการประมวลผลรูปภาพจากผู้ใช้ "จากประเทศที่มีระบบทุนนิยมที่พัฒนาแล้ว" แต่จะเข้าถึงการประมวลผลรูปภาพสำหรับผู้ใช้ VKontakte จากทั่วทุกมุมโลก ตัดสินโดยรหัส Ostagram ที่เผยแพร่บน GitHub ได้รับการพัฒนาโดย Sergey Morugin ซึ่งเป็นชาวเมือง Nizhny Novgorod วัย 30 ปี

ทีเจติดต่อมา ผู้อำนวยการฝ่ายการค้าโครงการแนะนำโดย Andrey ตามที่เขาพูด Ostagram ปรากฏตัวต่อหน้า Instapainting แต่ได้รับแรงบันดาลใจจากโครงการที่คล้ายกันชื่อ Vipart

Ostagram ได้รับการพัฒนาโดยกลุ่มนักศึกษาจาก NNSTU Alekseeva: หลังจากการทดสอบเบื้องต้นกับกลุ่มเพื่อนแคบๆ ในช่วงสิ้นปี 2558 พวกเขาตัดสินใจเผยแพร่โครงการนี้ต่อสาธารณะ ในขั้นต้น การประมวลผลภาพนั้นฟรีทั้งหมด และมีการวางแผนที่จะหารายได้จากการขายภาพวาดที่พิมพ์ออกมา จากข้อมูลของ Andrey การพิมพ์กลายเป็นปัญหาใหญ่ที่สุด: ภาพถ่ายของผู้คนที่ประมวลผลโดยโครงข่ายประสาทเทียมนั้นไม่ค่อยถูกใจสายตามนุษย์ และลูกค้าปลายทางจำเป็นต้องปรับผลลัพธ์เป็นเวลานานก่อนที่จะนำไปใช้กับผืนผ้าใบ ซึ่ง ต้องใช้ทรัพยากรเครื่องมาก

สำหรับการประมวลผลภาพ ผู้สร้าง Ostagram ต้องการใช้เซิร์ฟเวอร์คลาวด์ของ Amazon แต่หลังจากมีผู้ใช้จำนวนมาก เห็นได้ชัดว่าค่าใช้จ่ายของพวกเขาจะเกินหนึ่งพันดอลลาร์ต่อวันโดยได้รับผลตอบแทนจากการลงทุนเพียงเล็กน้อย Andrey ซึ่งเป็นผู้ลงทุนในโครงการนี้ได้เช่าสิ่งอำนวยความสะดวกเซิร์ฟเวอร์ใน Nizhny Novgorod

ผู้ชมโครงการประมาณหนึ่งพันคนต่อวัน แต่ในบางวันก็ถึง 40,000 คนเนื่องจากการเปลี่ยนแปลงจากสื่อต่างประเทศที่สังเกตเห็นโครงการนี้มาก่อนสื่อในประเทศ (Ostagram สามารถร่วมมือกับดีเจชาวยุโรปได้ด้วยซ้ำ) ในเวลากลางคืน เมื่อการจราจรคับคั่ง การประมวลผลภาพอาจใช้เวลา 5 นาที และอาจใช้เวลาถึงหนึ่งชั่วโมงในระหว่างวัน

หากผู้ใช้ต่างประเทศก่อนหน้านี้จงใจจำกัดการเข้าถึงการประมวลผลภาพ (คิดว่าจะเริ่มสร้างรายได้จากรัสเซีย) ตอนนี้ Ostagram พึ่งพาผู้ชมชาวตะวันตกมากขึ้นแล้ว

จนถึงปัจจุบัน โอกาสในการคืนทุนมีเงื่อนไข หากผู้ใช้แต่ละคนจ่ายเงิน 10 รูเบิลสำหรับการประมวลผล บางทีมันอาจจะคุ้มค่า […]

การสร้างรายได้ในประเทศของเราเป็นเรื่องยากมาก: คนของเราพร้อมที่จะรอหนึ่งสัปดาห์ แต่พวกเขาจะไม่จ่ายเงินเพื่อมัน ชาวยุโรปชอบสิ่งนี้มากกว่า - ในแง่ของการจ่ายเงินสำหรับการเร่งความเร็ว, การปรับปรุงคุณภาพ - ดังนั้นการวางแนวจึงไปที่ตลาดนั้น

อันเดรย์ ตัวแทน Ostagram

ตามที่ Andrey กล่าวว่าทีม Ostagram กำลังดำเนินการอยู่ เวอร์ชั่นใหม่ไซต์ที่ให้ความสำคัญกับสังคม: "ดูเหมือนว่าจะเป็นบริการที่มีชื่อเสียง แต่จะทำอย่างไร" ตัวแทนของ Facebook ในรัสเซียได้ให้ความสนใจในโครงการนี้แล้ว แต่ข้อตกลงดังกล่าวยังไม่ได้มีการเจรจาเกี่ยวกับการขาย

ตัวอย่างงานบริการ

ในฟีดบนเว็บไซต์ Ostagram คุณยังสามารถดูได้ว่าการรวมกันของรูปภาพใดทำให้เกิดภาพสุดท้าย ซึ่งบ่อยครั้งสิ่งนี้น่าสนใจมากกว่าผลลัพธ์เสียอีก ในเวลาเดียวกัน ตัวกรอง - รูปภาพที่ใช้เป็นเอฟเฟกต์สำหรับการประมวลผล - สามารถบันทึกเพื่อใช้ต่อไปได้

สวัสดีฮับ! แน่นอนคุณสังเกตเห็นว่ารูปแบบการจัดแต่งรูปภาพต่างๆ รูปแบบศิลปะพูดคุยอย่างแข็งขันในอินเทอร์เน็ตของคุณเหล่านี้ เมื่ออ่านบทความยอดนิยมเหล่านี้ คุณอาจคิดว่าเวทมนตร์กำลังเกิดขึ้นภายใต้ประทุนของแอปพลิเคชันเหล่านี้ และโครงข่ายประสาทเทียมกำลังเพ้อฝันและวาดภาพใหม่ตั้งแต่ต้น มันบังเอิญมากที่ทีมของเราต้องเผชิญกับงานที่คล้ายกัน: ในฐานะส่วนหนึ่งของงานแฮ็กกาธอนภายในองค์กร เราทำสไตล์วิดีโอเพราะ มีแอพสำหรับรูปภาพอยู่แล้ว ในโพสต์นี้ เราจะมาดูกันว่าเครือข่าย "วาดใหม่" รูปภาพอย่างไร และดูบทความที่ทำให้เป็นไปได้ ฉันขอแนะนำให้คุณทำความคุ้นเคยกับโพสต์ล่าสุดก่อนที่จะอ่านเนื้อหานี้และโดยทั่วไปเกี่ยวกับพื้นฐานของเครือข่ายประสาทเทียม คุณจะพบสูตรบางรหัส (ฉันจะยกตัวอย่างเกี่ยวกับ Theano และ Lasagne) รวมถึงรูปภาพจำนวนมาก โพสต์นี้สร้างขึ้นใน ตามลำดับเวลาการปรากฏตัวของบทความและความคิดของตัวเอง บางครั้งฉันจะเจือจางด้วยประสบการณ์ล่าสุดของเรา นี่คือเด็กชายจากนรกที่เรียกร้องความสนใจ


การสร้างภาพและทำความเข้าใจเครือข่าย Convolutional (28 พ.ย. 2556)

ประการแรก มันคุ้มค่าที่จะกล่าวถึงบทความที่ผู้เขียนสามารถแสดงให้เห็นว่าโครงข่ายประสาทเทียมไม่ใช่กล่องดำ แต่เป็นสิ่งที่สามารถตีความได้ (อย่างไรก็ตาม วันนี้สามารถพูดได้ไม่เพียงเกี่ยวกับเครือข่ายคอนโวลูชั่นสำหรับคอมพิวเตอร์เท่านั้น วิสัยทัศน์). ผู้เขียนตัดสินใจที่จะเรียนรู้วิธีตีความการเปิดใช้งานของเซลล์ประสาทชั้นที่ซ่อนอยู่ ด้วยเหตุนี้พวกเขาจึงใช้โครงข่ายประสาทเทียมแบบแยกส่วน (deconvnet) ที่เสนอเมื่อหลายปีก่อน (ยังไงก็ตาม Zeiler และ Fergus คนเดียวกันซึ่งเป็นผู้เขียนเอกสารฉบับนี้ในชื่อ ดี). เครือข่าย deconvolutional เป็นเครือข่ายเดียวกันกับ convolutions และ poolings ที่ใช้ในลำดับย้อนกลับ งานต้นฉบับบน deconvnet ใช้เครือข่ายในโหมดการเรียนรู้ที่ไม่มีผู้ดูแลเพื่อสร้างภาพ ครั้งนี้ ผู้เขียนใช้มันเพียงเพื่อย้อนกลับจากคุณสมบัติที่ได้รับหลังจากการส่งต่อผ่านเครือข่ายไปยังภาพต้นฉบับ ผลลัพธ์ที่ได้คือภาพที่สามารถตีความได้ว่าเป็นสัญญาณที่ทำให้เกิดการกระตุ้นนี้บนเซลล์ประสาท ตามธรรมชาติแล้วคำถามเกิดขึ้น: จะทำการย้อนกลับผ่านการบิดเบี้ยวและความไม่เชิงเส้นได้อย่างไร และยิ่งกว่านั้น ผ่านการรวมพลังสูงสุด นี่ไม่ใช่การดำเนินการกลับด้านอย่างแน่นอน มาดูทั้งสามองค์ประกอบกัน

ย้อนกลับ ReLu

ในเครือข่าย convolutional มักใช้ฟังก์ชันการเปิดใช้งาน ReLu(x) = สูงสุด(0, x)ซึ่งทำให้การเปิดใช้งานทั้งหมดบนเลเยอร์ไม่เป็นลบ ดังนั้น เมื่อย้อนกลับผ่านความไม่เป็นเชิงเส้น ก็จำเป็นต้องได้รับผลลัพธ์ที่ไม่เป็นลบด้วย สำหรับสิ่งนี้ผู้เขียนเสนอให้ใช้ ReLu เดียวกัน จากมุมมองของสถาปัตยกรรม Theano จำเป็นต้องแทนที่ฟังก์ชันการไล่ระดับสีของการดำเนินการ (โน้ตบุ๊กที่มีค่าไม่สิ้นสุดอยู่ในสูตรลาซานญ่า จากนั้นคุณจะรวบรวมรายละเอียดของคลาส ModifiedBackprop)

Class ZeilerBackprop(ModifiedBackprop): def grad(self, inputs, out_grads): (inp,) = inputs (grd,) = out_grads #return (grd * (grd > 0).astype(inp.dtype),) # แก้ไขอย่างชัดเจน return (self.nonlinearity(grd),) # ใช้ความไม่เชิงเส้นที่กำหนด

ย้อนกลับ Convolution

ที่นี่ซับซ้อนกว่าเล็กน้อย แต่ทุกอย่างมีเหตุผล: ก็เพียงพอแล้วที่จะใช้เคอร์เนล Convolution เดียวกันในเวอร์ชันทรานสโพส แต่ใช้กับเอาต์พุตจาก ReLu ย้อนกลับแทนเลเยอร์ก่อนหน้าที่ใช้ในการส่งผ่านไปข้างหน้า แต่ฉันเกรงว่าในคำพูดจะไม่ชัดเจน ลองดูที่การแสดงภาพของขั้นตอนนี้ (คุณจะพบการแสดงภาพของการบิดมากขึ้น)


Convolution เมื่อก้าว = 1

Convolution เมื่อก้าว = 1 รุ่นย้อนกลับ

Convolution เมื่อก้าว = 2

Convolution เมื่อก้าว = 2 รุ่นย้อนกลับ

การรวมย้อนกลับ

การดำเนินการนี้ (ไม่เหมือนกับการดำเนินการก่อนหน้านี้) โดยทั่วไปไม่สามารถย้อนกลับได้ แต่เรายังคงต้องการที่จะผ่านสูงสุดไม่ทางใดก็ทางหนึ่งในระหว่างการผ่านย้อนกลับ ในการทำเช่นนี้ ผู้เขียนแนะนำให้ใช้แผนที่ของตำแหน่งสูงสุดระหว่างการผ่านตรง (สวิตช์ตำแหน่งสูงสุด) ในระหว่างการส่งผ่านย้อนกลับ สัญญาณอินพุตจะถูกแปลงเป็น unpooling ในลักษณะที่รักษาโครงสร้างของสัญญาณดั้งเดิมไว้โดยประมาณ ซึ่งมองเห็นได้ง่ายกว่าการอธิบายในที่นี้



ผลลัพธ์

อัลกอริทึมการแสดงภาพนั้นง่ายมาก:

  1. ทำทางตรง
  2. เลือกเลเยอร์ที่เราสนใจ
  3. แก้ไขการเปิดใช้งานของเซลล์ประสาทตั้งแต่หนึ่งเซลล์ขึ้นไปและรีเซ็ตส่วนที่เหลือ
  4. ทำการอนุมาน.

สี่เหลี่ยมสีเทาแต่ละอันในภาพด้านล่างสอดคล้องกับการแสดงภาพของตัวกรอง (ซึ่งใช้สำหรับการบิดเบี้ยว) หรือน้ำหนักของเซลล์ประสาทเดี่ยว และแต่ละอัน ภาพสีเป็นส่วนหนึ่งของภาพต้นฉบับที่เปิดใช้งานเซลล์ประสาทที่เกี่ยวข้อง เพื่อความชัดเจน เซลล์ประสาทภายในหนึ่งชั้นจะถูกจัดกลุ่มเป็น กลุ่มเฉพาะเรื่อง. โดยทั่วไปแล้วจู่ๆ โครงข่ายประสาทเทียมก็เรียนรู้ว่า Hubel และ Weisel เขียนอะไรในงานของพวกเขาเกี่ยวกับโครงสร้างของระบบภาพซึ่งพวกเขาได้รับรางวัล รางวัลโนเบลในปี 1981 ขอบคุณบทความนี้ ทำให้เราเห็นภาพสิ่งที่เครือข่ายประสาทเทียมเรียนรู้ในแต่ละเลเยอร์ ความรู้นี้จะช่วยให้สามารถจัดการเนื้อหาของภาพที่สร้างขึ้นได้ในภายหลัง แต่สิ่งนี้ยังห่างไกล ไม่กี่ปีข้างหน้าได้มีการปรับปรุงวิธีการ "เจาะ" ของโครงข่ายประสาทเทียม นอกจากนี้ ผู้เขียนบทความได้เสนอวิธีวิเคราะห์วิธีที่ดีที่สุดในการสร้างสถาปัตยกรรมของเครือข่ายประสาทเทียมเพื่อให้บรรลุ ผลลัพธ์ที่ดีที่สุด(อย่างไรก็ตาม พวกเขาไม่ชนะ ImageNet 2013 แต่อยู่ในอันดับต้น ๆ ยูพีดี: ปรากฎว่าพวกเขาชนะ Clarifai คือสิ่งที่พวกเขาเป็น)


การแสดงภาพคุณลักษณะ


นี่คือตัวอย่างการแสดงภาพของการเปิดใช้งานโดยใช้ deconvnet วันนี้ผลลัพธ์นี้ดูพอใช้ได้ แต่แล้วมันก็เป็นความก้าวหน้า


แผนที่ความเด่นโดยใช้ deconvnet

Deep Inside Convolutional Networks: การแสดงแบบจำลองการจำแนกรูปภาพและแผนที่ความเด่น (19 เมษายน 2014)

บทความนี้อุทิศให้กับการศึกษาวิธีการแสดงภาพความรู้ที่มีอยู่ในเครือข่ายประสาทเทียม ผู้เขียนเสนอวิธีการแสดงภาพสองวิธีตามการไล่ระดับสี

การแสดงแบบจำลองคลาส

ลองนึกภาพว่าเรามีเครือข่ายประสาทที่ได้รับการฝึกฝนเพื่อแก้ปัญหาการจำแนกประเภทเป็นคลาสจำนวนหนึ่ง แสดงว่าเป็นค่าการเปิดใช้งานของเซลล์ประสาทเอาต์พุตที่สอดคล้องกับคลาส . จากนั้นปัญหาการปรับให้เหมาะสมต่อไปนี้ทำให้เราได้ภาพที่ขยายคลาสที่เลือกให้ใหญ่ที่สุด:



งานนี้แก้ไขได้ง่ายโดยใช้ Theano โดยปกติแล้ว เราจะขอให้เฟรมเวิร์กใช้อนุพันธ์ของพารามิเตอร์โมเดล แต่คราวนี้เราถือว่าพารามิเตอร์ได้รับการแก้ไขแล้ว และอนุพันธ์นั้นนำมาจากอิมเมจอินพุต ฟังก์ชันต่อไปนี้จะเลือกค่าสูงสุดของเลเยอร์เอาต์พุตและส่งกลับฟังก์ชันที่คำนวณอนุพันธ์ตามรูปภาพอินพุต


def compile_saliency_function(net): """ คอมไพล์ฟังก์ชันเพื่อคำนวณแผนที่ความเค็มและคลาสที่คาดการณ์สำหรับอิมเมจอินพุตชุดย่อยที่กำหนด """ inp = net["input"].input_var outp = lasagne.layers.get_output(net ["fc8"], deterministic=True) max_outp = T.max(outp, axis=1) saliency = theano.grad(max_outp.sum(), wrt=inp) max_class = T.argmax(outp, axis=1) ส่งคืน theano.function(, )

คุณคงเคยเห็นภาพสุนัขแปลกๆ บนอินเทอร์เน็ต - DeepDream ในบทความต้นฉบับผู้เขียนใช้ กระบวนการต่อไปเพื่อสร้างภาพที่เพิ่มคลาสที่เลือก:

  1. เริ่มต้นภาพเริ่มต้นด้วยศูนย์
  2. คำนวณค่าของอนุพันธ์จากภาพนี้
  3. เปลี่ยนรูปภาพโดยเพิ่มรูปภาพผลลัพธ์จากอนุพันธ์
  4. กลับไปที่ขั้นตอนที่ 2 หรือออกจากลูป

ภาพที่ได้คือ:




แต่ถ้าคุณเริ่มต้นภาพแรกด้วยภาพถ่ายจริงและเริ่มกระบวนการเดียวกันล่ะ แต่ในการวนซ้ำแต่ละครั้ง เราจะเลือกคลาสแบบสุ่ม ตั้งค่าส่วนที่เหลือเป็นศูนย์ และคำนวณค่าของอนุพันธ์ จากนั้นเราจะได้ความฝันอันลึกซึ้ง


ข้อควรระวัง 60 mb


ทำไมถึงมีใบหน้าและดวงตาของสุนัขมากมาย? มันง่ายมาก: มีสุนัขเกือบ 200 ตัวในภาพสุทธิจาก 1,000 คลาส พวกมันมีตา และยังมีอีกหลายชั้นเรียนที่มีแต่ผู้คน

การสกัดความเด่นของคลาส

หากกระบวนการนี้เริ่มต้นด้วยภาพถ่ายจริง หยุดหลังจากการวนซ้ำครั้งแรกและวาดค่าของอนุพันธ์ จากนั้นเราจะได้ภาพดังกล่าว บวกกับภาพต้นฉบับ เราจะเพิ่มค่าการเปิดใช้งานของคลาสที่เลือก


แผนที่ความเด่นโดยใช้อนุพันธ์


อีกครั้งผลลัพธ์คือ "พอดูได้" เป็นสิ่งสำคัญที่จะต้องทราบว่าสิ่งนี้ วิธีการใหม่การแสดงภาพของการเปิดใช้งาน (ไม่มีอะไรป้องกันเราจากการกำหนดค่าการเปิดใช้งานที่ไม่ได้อยู่ในเลเยอร์สุดท้าย แต่โดยทั่วไปในเลเยอร์ใด ๆ ของเครือข่ายและรับอนุพันธ์ตามภาพอินพุต) บทความถัดไปจะรวมแนวทางก่อนหน้านี้และให้เครื่องมือเกี่ยวกับวิธีตั้งค่าการถ่ายโอนสไตล์ ซึ่งจะอธิบายในภายหลัง

มุ่งมั่นสู่ความเรียบง่าย: The All Convolutional Net (13 เม.ย. 2558)

บทความนี้โดยทั่วไปไม่เกี่ยวกับการแสดงภาพ แต่เกี่ยวกับข้อเท็จจริงที่ว่าการแทนที่การรวมวงด้วยการบิดเป็นวงกว้างไม่ได้นำไปสู่การสูญเสียคุณภาพ แต่เป็นผลพลอยได้จากการวิจัยของพวกเขา ผู้เขียนได้เสนอวิธีการแสดงภาพคุณลักษณะแบบใหม่ ซึ่งนำไปใช้ในการวิเคราะห์สิ่งที่แบบจำลองเรียนรู้ได้แม่นยำยิ่งขึ้น แนวคิดของพวกเขามีดังนี้: หากเราเพียงแค่หาอนุพันธ์ คุณลักษณะเหล่านั้นที่น้อยกว่าศูนย์ในรูปภาพอินพุตจะไม่ย้อนกลับในระหว่างการแยกส่วน (โดยใช้ ReLu สำหรับรูปภาพอินพุต) และสิ่งนี้นำไปสู่ความจริงที่ว่าค่าลบปรากฏบนภาพด้านหลังที่เผยแพร่ ในทางกลับกัน หากคุณใช้ deconvnet ReLu อีกตัวจะถูกนำมาจากอนุพันธ์ของ ReLu ซึ่งช่วยให้คุณไม่ต้องข้ามกลับค่าลบ แต่อย่างที่คุณเห็น ผลลัพธ์คือ "พอดูได้" แต่ถ้าเรารวมสองวิธีนี้เข้าด้วยกันล่ะ?




คลาส GuidedBackprop(ModifiedBackprop): def grad(ตัวเอง, อินพุต, out_grads): (inp,) = อินพุต (grd,) = out_grads dtype = inp.dtype return (grd * (inp > 0).astype(dtype) * (grd > 0).astype(dtype),)

จากนั้นคุณจะได้ภาพที่สะอาดสมบูรณ์และสื่อความหมายได้


แผนที่ความเด่นโดยใช้ Guided Backpropagation

ลึกลงไป

ลองคิดดูว่าสิ่งนี้ให้อะไรเราบ้าง? ฉันขอเตือนคุณว่าแต่ละเลเยอร์ convolutional เป็นฟังก์ชันที่รับเทนเซอร์สามมิติเป็นอินพุต และยังสร้างเทนเซอร์สามมิติเป็นเอาต์พุต อาจเป็นมิติที่แตกต่างกัน x x ชม.; epth คือจำนวนของเซลล์ประสาทในเลเยอร์ ซึ่งแต่ละเซลล์สร้างแผนผังคุณลักษณะที่มีขนาด igth x ชม.แปด.


ลองทำการทดสอบต่อไปนี้บนเครือข่าย VGG-19:



Conv1_2

ใช่คุณแทบไม่เห็นอะไรเลยเพราะ พื้นที่รับมีขนาดเล็กมากนี่คือการบิดครั้งที่สอง 3x3 ตามลำดับพื้นที่ทั้งหมดคือ 5x5 แต่เมื่อซูมเข้าเราจะเห็นว่าคุณสมบัตินี้เป็นเพียงตัวตรวจจับการไล่ระดับสี




Conv3_3


Conv4_3


Conv5_3


สระว่ายน้ำ5


และตอนนี้ลองนึกดูว่าแทนที่จะเป็นค่าสูงสุดบนเพลต เราจะหาอนุพันธ์ของค่าของผลรวมขององค์ประกอบทั้งหมดของเพลตเหนือภาพที่ป้อนเข้า เห็นได้ชัดว่าพื้นที่รับสัญญาณของกลุ่มเซลล์ประสาทจะครอบคลุมภาพอินพุตทั้งหมด สำหรับชั้นแรก เราจะเห็นแผนที่สว่าง ซึ่งเราอนุมานได้ว่าสิ่งเหล่านี้คือตัวตรวจจับสี จากนั้นเป็นการไล่ระดับสี จากนั้นจึงเป็นเส้นขอบ และอื่น ๆ ไปสู่รูปแบบที่ซับซ้อนมากขึ้น เลเยอร์ที่ลึกกว่าจะได้ภาพที่หรี่ลง สิ่งนี้อธิบายได้จากข้อเท็จจริงที่ว่าเลเยอร์ที่ลึกกว่ามีรูปแบบที่ซับซ้อนกว่าซึ่งตรวจจับได้ และรูปแบบที่ซับซ้อนปรากฏน้อยกว่าแบบธรรมดา ดังนั้นแผนที่การเปิดใช้งานจึงหรี่ลง วิธีแรกเหมาะสำหรับการทำความเข้าใจเลเยอร์ที่มีรูปแบบซับซ้อน และวิธีที่สองเหมาะสำหรับเลเยอร์ที่เรียบง่าย


Conv1_1


Conv2_2


Conv4_3


คุณสามารถดาวน์โหลดฐานข้อมูลการเปิดใช้งานที่สมบูรณ์ยิ่งขึ้นสำหรับรูปภาพหลายรูปและ

อัลกอริทึมประสาทของรูปแบบศิลปะ (2 ก.ย. 2558)

สองสามปีที่ผ่านมานับตั้งแต่การเจาะเครือข่ายประสาทสำเร็จครั้งแรก เรา (ในแง่ของมนุษยชาติ) มีเครื่องมืออันทรงพลังอยู่ในมือ ซึ่งช่วยให้เราเข้าใจสิ่งที่โครงข่ายประสาทเทียมเรียนรู้ รวมทั้งลบสิ่งที่เราไม่ต้องการให้มันเรียนรู้จริงๆ ผู้เขียนบทความนี้กำลังพัฒนาวิธีการที่ช่วยให้คุณสร้างภาพหนึ่งภาพสร้างแผนผังการเปิดใช้งานที่คล้ายกันกับภาพเป้าหมายบางภาพ และอาจมากกว่าหนึ่งภาพ - นี่คือพื้นฐานของสไตล์ เราป้อนสัญญาณรบกวนสีขาวให้กับอินพุต และในกระบวนการวนซ้ำที่คล้ายกันกับใน Deep Dream เรานำภาพนี้ไปยังภาพที่แมปคุณลักษณะคล้ายกับภาพเป้าหมาย

การสูญเสียเนื้อหา

ดังที่กล่าวไปแล้ว แต่ละชั้นของโครงข่ายประสาทเทียมจะสร้างเทนเซอร์สามมิติของมิติใดมิติหนึ่ง




มาแสดงผลลัพธ์กันเถอะ ฉันเลเยอร์ th จากอินพุตเป็น . จากนั้นถ้าเราลดผลรวมถ่วงน้ำหนักของสิ่งตกค้างระหว่างภาพที่ป้อนให้น้อยที่สุด และภาพบางส่วนที่เราปรารถนา แล้วคุณจะได้สิ่งที่คุณต้องการ อาจจะ.



สำหรับการทดลองกับบทความนี้ คุณสามารถใช้แล็ปท็อปวิเศษเครื่องนี้ ซึ่งทำการคำนวณ (ทั้งบน GPU และบน CPU) GPU ใช้เพื่อคำนวณคุณสมบัติของโครงข่ายประสาทเทียมและมูลค่าของฟังก์ชันต้นทุน Theano สร้างฟังก์ชันที่สามารถคำนวณความชันของฟังก์ชันวัตถุประสงค์ได้ eval_gradโดยใส่รูปภาพ x. สิ่งนี้จะถูกป้อนเข้าสู่ lbfgs และกระบวนการวนซ้ำจะเริ่มต้นขึ้น


# เริ่มต้นด้วยภาพสัญญาณรบกวน created_image.set_value(floatX(np.random.uniform(-128, 128, (1, 3, IMAGE_W, IMAGE_W)))) x0 = created_image.get_value().astype("float64") xs = xs.append(x0) # ปรับให้เหมาะสม บันทึกผลลัพธ์เป็นระยะสำหรับ i ในช่วง (8): พิมพ์(i) scipy.optimize.fmin_l_bfgs_b(eval_loss, x0.flatten(), fprime=eval_grad, maxfun=40) x0 = created_image.get_value().astype("float64") xs.append(x0)

หากเราเรียกใช้การปรับให้เหมาะสมของฟังก์ชันดังกล่าว เราจะได้ภาพที่คล้ายกับเป้าหมายอย่างรวดเร็ว ตอนนี้เราสามารถสร้างภาพใหม่จากสัญญาณรบกวนสีขาวที่ดูเหมือนภาพเนื้อหาบางส่วนได้


การสูญเสียเนื้อหา: conv4_2



กระบวนการเพิ่มประสิทธิภาพ




ง่ายต่อการสังเกตคุณสมบัติสองประการของภาพที่ได้:

  • สีที่หายไป - นี่คือผลลัพธ์ของความจริงที่ว่าใน ตัวอย่างเฉพาะใช้เฉพาะเลเยอร์ conv4_2 เท่านั้น (หรืออีกนัยหนึ่ง น้ำหนัก w ไม่ใช่ศูนย์สำหรับเลเยอร์นั้น และเป็นศูนย์สำหรับเลเยอร์อื่นๆ) อย่างที่คุณจำได้ มันเป็นเลเยอร์แรกที่มีข้อมูลเกี่ยวกับสีและการเปลี่ยนสีแบบไล่ระดับสี และเลเยอร์ต่อมาจะมีข้อมูลเกี่ยวกับรายละเอียดที่ใหญ่ขึ้น ซึ่งเป็นสิ่งที่เราสังเกตได้ สีจะหายไป แต่เนื้อหาไม่ใช่
  • บางบ้าน "ไปกันเถอะ" เช่น เส้นตรงมีความโค้งเล็กน้อย เนื่องจากยิ่งเลเยอร์ลึกเท่าใด ข้อมูลเกี่ยวกับตำแหน่งเชิงพื้นที่ของคุณลักษณะก็จะยิ่งน้อยลงเท่านั้น

การเพิ่มเลเยอร์แรกจะแก้ไขสถานการณ์ด้วยสีทันที


การสูญเสียเนื้อหา: conv1_1, conv2_1, conv4_2


หวังว่าตอนนี้คุณจะรู้สึกว่าคุณสามารถควบคุมสิ่งที่วาดใหม่บนภาพสัญญาณรบกวนสีขาวได้แล้ว

การสูญเสียสไตล์

และตอนนี้เรามาถึงสิ่งที่น่าสนใจที่สุดแล้ว: เราจะถ่ายทอดสไตล์ได้อย่างไร? สไตล์คืออะไร? เห็นได้ชัดว่าสไตล์ไม่ใช่สิ่งที่เราปรับให้เหมาะสมใน Content Loss เพราะมันมีข้อมูลมากมายเกี่ยวกับตำแหน่งเชิงพื้นที่ของฟีเจอร์ ดังนั้น สิ่งแรกที่ต้องทำคือลบข้อมูลนี้ออกจากมุมมองที่ได้รับในแต่ละเลเยอร์


ผู้เขียนขอเสนอวิธีการดังต่อไปนี้ ลองใช้เทนเซอร์ที่เอาต์พุตของบางเลเยอร์ ขยายในพิกัดเชิงพื้นที่และคำนวณเมทริกซ์ความแปรปรวนร่วมระหว่างเพลต สมมติว่าการแปลงนี้เป็น . เราได้ทำอะไรลงไปจริง ๆ ? อาจกล่าวได้ว่าเรานับความถี่ที่คุณลักษณะภายในเพลตเกิดขึ้นเป็นคู่ หรืออีกนัยหนึ่ง เราประมาณการกระจายของคุณลักษณะในเพลตด้วยการแจกแจงปกติหลายตัวแปร




จากนั้นป้อน Style Loss ดังนี้ โดยที่ เป็นภาพที่มีสไตล์:



เราลองไปหา Vincent กันไหม? โดยหลักการแล้วเราได้รับสิ่งที่คาดหวัง - เสียงรบกวนในสไตล์ของ Van Gogh ข้อมูลเกี่ยวกับการจัดคุณสมบัติเชิงพื้นที่จะหายไปอย่างสมบูรณ์


วินเซนต์




ถ้าเราใส่รูปถ่ายแทนรูปภาพสไตล์ล่ะ? คุณได้รับคุณสมบัติที่คุ้นเคย สีที่คุ้นเคย แต่ตำแหน่งเชิงพื้นที่หายไปโดยสิ้นเชิง


ภาพถ่ายที่มีการสูญเสียสไตล์


แน่นอนคุณสงสัยว่าทำไมเราคำนวณเมทริกซ์ความแปรปรวนร่วม ไม่ใช่อย่างอื่น? ท้ายที่สุด มีหลายวิธีในการรวมคุณลักษณะเพื่อให้พิกัดเชิงพื้นที่สูญหายไป นี่เป็นคำถามเปิดจริงๆ และถ้าคุณใช้สิ่งที่ง่ายๆ ผลลัพธ์จะไม่เปลี่ยนแปลงอย่างมาก ลองตรวจสอบกันดู เราจะไม่คำนวณเมทริกซ์ความแปรปรวนร่วม แต่จะคำนวณค่าเฉลี่ยของแต่ละจาน




การสูญเสียสไตล์ที่เรียบง่าย

ขาดทุนรวมกัน

โดยธรรมชาติแล้วมีความปรารถนาที่จะผสมผสานฟังก์ชันต้นทุนทั้งสองนี้เข้าด้วยกัน จากนั้นเราจะสร้างภาพดังกล่าวจากสัญญาณรบกวนสีขาวซึ่งจะคงคุณสมบัติจากภาพเนื้อหา (ซึ่งเชื่อมโยงกับพิกัดเชิงพื้นที่) และจะมีคุณสมบัติ "รูปแบบ" ที่ไม่ได้เชื่อมโยงกับพิกัดเชิงพื้นที่ด้วย เช่น หวังว่าเราจะคงรายละเอียดภาพเนื้อหาไว้เหมือนเดิม แต่วาดใหม่ด้วยสไตล์ที่เหมาะสม



ในความเป็นจริงยังมี Regularizer แต่เราจะละเว้นเพื่อความเรียบง่าย ยังคงต้องตอบคำถามต่อไปนี้: เลเยอร์ใด (น้ำหนัก) ที่จะใช้ในการเพิ่มประสิทธิภาพ และฉันเกรงว่าฉันไม่มีคำตอบสำหรับคำถามนี้ และผู้เขียนบทความก็เช่นกัน พวกเขามีคำแนะนำให้ใช้สิ่งต่อไปนี้ แต่นี่ไม่ได้หมายความว่าชุดค่าผสมอื่นจะทำงานได้แย่ลง พื้นที่การค้นหามีขนาดใหญ่เกินไป กฎข้อเดียวที่ตามมาจากความเข้าใจในโมเดลคือไม่มีเหตุผลที่จะใช้เลเยอร์ข้างเคียงเพราะ สัญญาณจะไม่แตกต่างกันมากนัก ดังนั้นจึงมีการเพิ่มเลเยอร์จากแต่ละกลุ่ม Conv*_1 ให้กับสไตล์


# กำหนดการสูญเสียของฟังก์ชันการสูญเสีย = # การสูญเสียเนื้อหา loss.append(0.001 * content_loss(photo_features, gen_features, "conv4_2")) # การสูญเสียสไตล์ loss.append(0.2e6 * style_loss(art_features, gen_features, "conv1_1")) loss.append (0.2e6 * style_loss(art_features, gen_features, "conv2_1")) loss.append(0.2e6 * style_loss(art_features, gen_features, "conv3_1")) loss.append(0.2e6 * style_loss(art_features, gen_features, "conv4_1") ) loss.append(0.2e6 * style_loss(art_features, gen_features, "conv5_1")) # ผลรวมของค่าปรับที่สูญเสียทั้งหมด

รูปแบบสุดท้ายสามารถนำเสนอในรูปแบบต่อไปนี้




และนี่คือผลงานของบ้านกับแวนโก๊ะ



พยายามควบคุมกระบวนการ

ลองนึกถึงส่วนก่อนหน้านี้ เมื่อสองปีก่อนบทความปัจจุบัน นักวิทยาศาสตร์คนอื่น ๆ ได้สำรวจว่าโครงข่ายประสาทเทียมเรียนรู้อะไรจริง ๆ ด้วยบทความทั้งหมดนี้ คุณสามารถสร้างการแสดงภาพคุณลักษณะของสไตล์ต่างๆ ภาพต่างๆความละเอียดและขนาดที่แตกต่างกัน และพยายามทำความเข้าใจว่าเลเยอร์ใดควรรับน้ำหนัก แต่ถึงกระนั้นการถ่วงน้ำหนักเลเยอร์ใหม่ก็ไม่สามารถควบคุมสิ่งที่เกิดขึ้นได้อย่างเต็มที่ ปัญหาที่นี่คือแนวคิดเพิ่มเติม: เรากำลังเพิ่มประสิทธิภาพผิดหน้าที่! คุณถามอย่างไร คำตอบนั้นง่าย: ฟังก์ชันนี้ช่วยลดสิ่งตกค้างให้เหลือน้อยที่สุด ... คุณคงเข้าใจแล้ว แต่สิ่งที่เราต้องการจริงๆคือเราชอบภาพ การผสมผสานระหว่างเนื้อหาและฟังก์ชั่นการสูญเสียรูปแบบไม่ได้วัดสิ่งที่จิตใจของเราพิจารณาว่าสวยงาม สังเกตได้ว่าหากจัดแต่งทรงผมต่อเนื่องนานเกินไป ฟังก์ชันต้นทุนจะลดลงเรื่อยๆ ตามธรรมชาติ แต่ความสวยงามของผลลัพธ์ที่ได้จะลดลงอย่างรวดเร็ว




โอเค มีอีกหนึ่งปัญหา สมมติว่าเราพบเลเยอร์ที่แยกคุณสมบัติที่เราต้องการ สมมติว่าพื้นผิวบางส่วนเป็นรูปสามเหลี่ยม แต่เลเยอร์นี้ยังมีคุณสมบัติอื่นๆ อีกมากมาย เช่น วงกลม ซึ่งเราไม่ต้องการเห็นในภาพผลลัพธ์ โดยทั่วไป ถ้าเราสามารถจ้างคนจีนได้หนึ่งล้านคน เราก็สามารถจินตนาการถึงคุณลักษณะทั้งหมดของภาพสไตล์ และด้วยการค้นหาอย่างละเอียดถี่ถ้วน เพียงแค่ทำเครื่องหมายสิ่งที่เราต้องการ และรวมไว้ในฟังก์ชันต้นทุนเท่านั้น แต่ด้วยเหตุผลที่ชัดเจน มันไม่ง่ายอย่างนั้น แต่ถ้าเราลบวงกลมทั้งหมดที่เราไม่ต้องการให้ปรากฏในผลลัพธ์ออกจากสไตล์ชีตล่ะ จากนั้นการเปิดใช้งานเซลล์ประสาทที่เกี่ยวข้องซึ่งตอบสนองต่อวงกลมจะไม่ทำงาน และแน่นอนว่าสิ่งนี้จะไม่ปรากฏในภาพที่ได้ เช่นเดียวกับดอกไม้ นำเสนอภาพที่สดใสด้วยสีสันมากมาย การกระจายของสีจะเลอะไปทั่วพื้นที่ การกระจายของภาพที่ได้จะเหมือนกัน แต่ในระหว่างกระบวนการปรับให้เหมาะสม จุดสูงสุดที่อยู่บนต้นฉบับอาจจะหายไป ปรากฎว่าความลึกของบิตลดลงอย่างง่าย จานสีแก้ปัญหานี้ ความหนาแน่นของการกระจายของสีส่วนใหญ่จะอยู่ใกล้ศูนย์ และจะมีพีคขนาดใหญ่ในหลายพื้นที่ ดังนั้น ด้วยการปรับแต่งต้นฉบับใน Photoshop เรากำลังปรับแต่งคุณสมบัติที่แยกออกมาจากภาพ บุคคลสามารถแสดงความปรารถนาทางสายตาได้ง่ายกว่าการพยายามกำหนดเป็นภาษาคณิตศาสตร์ ลาก่อน. ผลก็คือ นักออกแบบและผู้จัดการซึ่งใช้ Photoshop และสคริปต์สำหรับการแสดงภาพคุณลักษณะต่าง ๆ ได้บรรลุผลสำเร็จเร็วกว่าที่นักคณิตศาสตร์และโปรแกรมเมอร์ทำถึง 3 เท่า


ตัวอย่างการปรับแต่งสีและขนาดของฟีเจอร์


และคุณก็สามารถถ่ายภาพง่ายๆ ตามสไตล์ได้ทันที



ผลลัพธ์








และนี่คือ vidosik แต่มีพื้นผิวที่เหมาะสมเท่านั้น

เครือข่ายพื้นผิว: การสังเคราะห์พื้นผิวและรูปภาพที่มีสไตล์แบบฟีดไปข้างหน้า (10 มี.ค. 2559)

ดูเหมือนว่าสิ่งนี้สามารถหยุดได้หากไม่ใช่ความแตกต่างเล็กน้อย อัลกอริธึมการจัดรูปแบบข้างต้นใช้งานได้นานมาก หากเราดำเนินการโดยเรียกใช้ lbfgs บน CPU กระบวนการจะใช้เวลาประมาณห้านาที หากคุณเขียนใหม่เพื่อให้การเพิ่มประสิทธิภาพไปที่ GPU กระบวนการนี้จะใช้เวลา 10-15 วินาที มันไม่ดี. บางทีผู้เขียนบทความนี้และบทความถัดไปอาจคิดเช่นเดียวกัน สิ่งพิมพ์ทั้งสองออกมาแยกกัน 17 วันห่างกันเกือบหนึ่งปีหลังจากบทความที่แล้ว ผู้เขียนบทความปัจจุบัน เช่นเดียวกับผู้เขียนบทความก่อนหน้านี้ มีส่วนร่วมในการสร้างพื้นผิว (หากคุณเพิ่งรีเซ็ตการสูญเสียรูปแบบ นี่คือสิ่งที่คุณได้รับโดยประมาณ) พวกเขาแนะนำให้ไม่ปรับภาพที่ได้รับจากสัญญาณรบกวนสีขาวให้เหมาะสม แต่ให้ปรับโครงข่ายประสาทเทียมบางส่วนที่สร้างภาพที่มีสไตล์




ตอนนี้ หากกระบวนการจัดแต่งทรงผมไม่มีการเพิ่มประสิทธิภาพใดๆ จำเป็นต้องดำเนินการส่งต่อเท่านั้น และจำเป็นต้องปรับให้เหมาะสมเพียงครั้งเดียวเพื่อฝึกเครือข่ายตัวสร้าง บทความนี้ใช้ตัวสร้างลำดับชั้นโดยที่แต่ละรายการต่อไปนี้ ซีใหญ่กว่าอันก่อนหน้าและสุ่มตัวอย่างจากสัญญาณรบกวนในกรณีของการสร้างพื้นผิว และจากฐานข้อมูลภาพบางส่วนสำหรับการฝึกสไตไลเซอร์ การใช้สิ่งอื่นที่ไม่ใช่ส่วนการฝึกอบรมของ imagenet เป็นสิ่งสำคัญเพราะ คุณลักษณะภายใน Loss-network คำนวณโดยเครือข่ายที่ได้รับการฝึกอบรมเฉพาะในส่วนการฝึกอบรมเท่านั้น



การสูญเสียการรับรู้สำหรับการถ่ายโอนสไตล์ตามเวลาจริงและความละเอียดสูงสุด (27 มี.ค. 2559)

ตามชื่อที่บอกไว้ ผู้เขียนซึ่งมีแนวคิดเกี่ยวกับการสร้างเครือข่ายช้าไปเพียง 17 วัน กำลังง่วนอยู่กับการเพิ่มความละเอียดของภาพ ดูเหมือนว่าพวกเขาจะได้รับแรงบันดาลใจจากความสำเร็จของการเรียนรู้ที่เหลือบน imagenet ล่าสุด




ตามบล็อกที่เหลือและบล็อก conv



ดังนั้น นอกจากการควบคุมการจัดรูปแบบแล้ว เรายังมีเครื่องมือสร้างที่รวดเร็วอยู่ในมือด้วย (ขอบคุณบทความทั้งสองนี้ เวลาในการสร้างภาพหนึ่งภาพมีหน่วยวัดเป็นสิบมิลลิวินาที)

สิ้นสุด

เราใช้ข้อมูลจากบทความที่ได้รับการตรวจสอบแล้วและโค้ดของผู้เขียนเป็นจุดเริ่มต้นในการสร้างแอปพลิเคชันจัดรูปแบบอื่นสำหรับแอปพลิเคชันจัดรูปแบบวิดีโอแรก:



สร้างสิ่งนี้


ในภาพถ่ายธรรมดาที่สุด มีสิ่งแปลกปลอมจำนวนมากและไม่สามารถแยกแยะได้ทั้งหมดปรากฏขึ้น บ่อยที่สุดสำหรับสุนัขด้วยเหตุผลบางอย่าง ภาพดังกล่าวเริ่มปรากฏบนอินเทอร์เน็ตในเดือนมิถุนายน 2558 เมื่อเปิดตัว DeepDream จาก Google ซึ่งเป็นหนึ่งในบริการเปิดแห่งแรกที่ใช้โครงข่ายประสาทเทียมและออกแบบมาสำหรับการประมวลผลภาพ

มันเกิดขึ้นประมาณนี้: อัลกอริทึมวิเคราะห์ภาพถ่ายค้นหาชิ้นส่วนที่เตือนให้นึกถึงวัตถุที่คุ้นเคย - และบิดเบือนภาพตามข้อมูลเหล่านี้

ขั้นแรก โครงการได้รับการจัดวางให้เป็นโอเพ่นซอร์ส จากนั้นบริการออนไลน์ที่สร้างขึ้นตามหลักการเดียวกันก็ปรากฏบนอินเทอร์เน็ต หนึ่งในวิธีที่สะดวกและเป็นที่นิยมที่สุดคือ Deep Dream Generator: ใช้เวลาเพียง 15 วินาทีในการประมวลผลภาพขนาดเล็กที่นี่ (ก่อนหน้านี้ผู้ใช้ต้องรอนานกว่าหนึ่งชั่วโมง)

โครงข่ายประสาทเทียมเรียนรู้การสร้างภาพดังกล่าวได้อย่างไร? แล้วทำไมพวกเขาถึงเรียกอย่างนั้น?

โครงข่ายประสาทเทียมในการออกแบบเลียนแบบโครงข่ายประสาทจริงของสิ่งมีชีวิต แต่ทำสิ่งนี้ด้วยความช่วยเหลือของอัลกอริทึมทางคณิตศาสตร์ เมื่อสร้างโครงสร้างพื้นฐานแล้ว คุณสามารถฝึกโดยใช้วิธีการเรียนรู้ของเครื่องได้ หากเรากำลังพูดถึงการจดจำรูปแบบ จะต้องส่งภาพหลายพันภาพผ่านโครงข่ายประสาทเทียม หากงานของโครงข่ายประสาทเทียมแตกต่างกัน แบบฝึกหัดการฝึกอบรมก็จะแตกต่างกัน

ขั้นตอนวิธีการเล่นหมากรุก เช่น วิเคราะห์เกมหมากรุก ในเส้นทางเดียวกัน อัลกอริธึม AlphaGo ของ DeepMind ของ Google ในเกม Go ของจีน ซึ่งได้รับการยกย่องว่าเป็นความก้าวหน้า เนื่องจาก Go มีความซับซ้อนและไม่เป็นเชิงเส้นมากกว่าหมากรุก

    คุณสามารถทดลองกับโมเดลโครงข่ายประสาทเทียมที่ง่ายขึ้นและเข้าใจหลักการของมันได้ดีขึ้น

    YouTube ยังมีชุดของการวาดด้วยมือที่เข้าใจได้ ลูกกลิ้งเกี่ยวกับการทำงานของโครงข่ายประสาทเทียม

บริการยอดนิยมอีกอย่างคือ Dreamscope ซึ่งไม่เพียง แต่ฝันถึงสุนัขเท่านั้น แต่ยังเลียนแบบสไตล์การวาดภาพต่างๆ การประมวลผลภาพที่นี่ยังง่ายและรวดเร็วมาก (ประมาณ 30 วินาที)

เห็นได้ชัดว่าส่วนอัลกอริทึมของบริการเป็นการดัดแปลงโปรแกรม Neural style ซึ่งเราได้กล่าวถึงแล้ว

เมื่อไม่นานมานี้มีโปรแกรมที่วาดภาพขาวดำได้อย่างสมจริง ในเวอร์ชันก่อนหน้านี้ โปรแกรมที่คล้ายกันทำงานได้ดีน้อยกว่ามาก และถือว่าเป็นความสำเร็จที่ยิ่งใหญ่หากผู้คนอย่างน้อย 20% ไม่สามารถแยกความแตกต่างระหว่างรูปภาพจริงกับรูปภาพที่ลงสีด้วยคอมพิวเตอร์ได้

นอกจากนี้ การลงสีที่นี่ใช้เวลาประมาณ 1 นาทีเท่านั้น

บริษัทพัฒนาเดียวกันนี้ยังเปิดตัวบริการที่จดจำในรูปภาพ ประเภทต่างๆวัตถุ

บริการเหล่านี้อาจดูเหมือนเป็นเพียงความบันเทิงที่สนุกสนาน แต่อันที่จริงแล้วทุกอย่างน่าสนใจกว่ามาก เทคโนโลยีใหม่ ๆ เข้าสู่การปฏิบัติของศิลปินมนุษย์และเปลี่ยนความเข้าใจในศิลปะของเรา บางทีในไม่ช้าผู้คนจะต้องแข่งขันกับเครื่องจักรในด้านความคิดสร้างสรรค์

การสอนอัลกอริทึมการจดจำรูปแบบเป็นงานที่นักพัฒนา AI ประสบปัญหามาเป็นเวลานาน ดังนั้นโปรแกรมที่ทำให้ภาพถ่ายเก่ามีสีสันและวาดสุนัขบนท้องฟ้าถือเป็นส่วนหนึ่งของกระบวนการที่ใหญ่และน่าสนใจยิ่งขึ้น


สูงสุด