GAN เป็นโมเดล ML กำเนิดที่ใช้กันอย่างแพร่หลายในการโฆษณา เกม ความบันเทิง สื่อ เภสัชกรรม และอุตสาหกรรมอื่นๆ คุณสามารถใช้เพื่อสร้างตัวละครและฉากในจินตนาการ จำลองอายุของใบหน้า เปลี่ยนรูปแบบภาพ สร้างข้อมูลสังเคราะห์สูตรทางเคมี และอื่นๆ
ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงเอฟเฟกต์ของ การแปลงภาพเป็นภาพ.
ภาพต่อไปนี้แสดงผลของ สังเคราะห์ฉากตามรูปแบบความหมาย.
โพสต์นี้จะแนะนำคุณเกี่ยวกับการสร้างโมเดล GAN แรกของคุณโดยใช้ อเมซอน SageMaker. นี่คือการเดินทางของการเรียนรู้ GAN จากมุมมองของประสบการณ์ด้านวิศวกรรมที่ใช้งานได้จริง รวมถึงการเปิดโดเมน AI/ML ใหม่ของโมเดลกำเนิด
เรายังแนะนำกรณีการใช้งานของหนึ่งในแอปพลิเคชัน GAN ที่ร้อนแรงที่สุดในพื้นที่การสร้างข้อมูลสังเคราะห์ เราหวังว่าสิ่งนี้จะช่วยให้คุณเข้าใจวิธีที่ GAN ใช้ในสถานการณ์จริง
ภาพรวมของโซลูชัน
ในบรรดารูปภาพตัวเลขที่เขียนด้วยลายมือสองภาพต่อไปนี้ หนึ่งในนั้นสร้างโดยแบบจำลอง GAN คุณสามารถบอกได้ว่าอันไหน?
หัวข้อหลักของบทความนี้คือการใช้เทคนิค ML เพื่อสร้างตัวเลขที่เขียนด้วยลายมือสังเคราะห์ เพื่อให้บรรลุเป้าหมายนี้ คุณจะได้สัมผัสประสบการณ์การฝึกอบรมแบบจำลอง GAN เป็นการส่วนตัว การสร้างตัวเลขที่เขียนด้วยลายมือสังเคราะห์นั้นโดยทั่วไปแล้วจะเหมือนกับหลักการพื้นฐานและกระบวนการทางวิศวกรรมของการสร้างภาพเหมือน แม้ว่าข้อมูล ความซับซ้อนของอัลกอริทึม และข้อกำหนดด้านความแม่นยำจะแตกต่างกัน
เครือข่ายปฏิปักษ์ทั่วไป โดย Ian Goodfellow และคณะ เป็นสถาปัตยกรรมโครงข่ายประสาทเทียมเชิงลึกที่ประกอบด้วยเครือข่ายตัวสร้างและเครือข่ายผู้แยกแยะ เครื่องกำเนิดไฟฟ้าสังเคราะห์ข้อมูลและพยายามหลอกลวงผู้เลือกปฏิบัติ ในขณะที่ผู้แยกแยะตรวจสอบข้อมูลและพยายามระบุข้อมูลที่สังเคราะห์ทั้งหมดอย่างถูกต้อง ในกระบวนการฝึกอบรมซ้ำ เครือข่ายทั้งสองยังคงพัฒนาและเผชิญหน้ากันต่อไปจนกว่าจะถึง สภาวะสมดุล (Nash equilibrium). ผู้แยกแยะไม่สามารถจดจำข้อมูลที่สังเคราะห์ได้อีกต่อไป เมื่อกระบวนการฝึกอบรมสิ้นสุดลง
ในการฝึกโมเดล GAN เราต้องเริ่มต้นด้วยเครื่องมือและบริการบางอย่างที่มีประสิทธิภาพและจำเป็นสำหรับแนวทางปฏิบัติ ML บน AWS เนื่องจากสภาพแวดล้อมการทำงาน SageMaker เป็นบริการ ML ที่มีการจัดการเต็มรูปแบบ มีเฟรมเวิร์ก ML หลักทั้งหมดเป็นอิมเมจคอนเทนเนอร์ที่มีการจัดการ เช่น Scikit-Learn, XGBoost, MXNet, TensorFlow, PyTorch และอื่นๆ ดิ SDK ของ SageMaker เป็นชุดพัฒนาโอเพ่นซอร์สสำหรับ SageMaker ที่ช่วยให้คุณใช้ SageMaker และบริการอื่นๆ ของ AWS ได้ เช่น การเข้าถึงข้อมูลใน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon บัคเก็ต (Amazon S3) หรือการฝึกโมเดลด้วยการจัดการ อเมซอน อีลาสติก คอมพิวท์ คลาวด์ (Amazon EC2) อินสแตนซ์
ด้วยฟังก์ชัน ML แบบ end-to-end ของ SageMaker คุณสามารถมุ่งเน้นไปที่งานสร้างแบบจำลองและฝึกโมเดล GAN ที่หลากหลายได้อย่างง่ายดาย โดยไม่ต้องเสียค่าใช้จ่ายในการบำรุงรักษาโครงสร้างพื้นฐานและเฟรมเวิร์ก
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของเรา
ข้อมูลการฝึกอบรมมาจากบัคเก็ตพื้นที่เก็บข้อมูล S3 และโหลดลงในที่จัดเก็บในเครื่องของอินสแตนซ์การฝึกอบรม กรอบการฝึกอบรมที่มีการจัดการและอัลกอริธึมที่มีการจัดการให้บริการในรูปแบบของคอนเทนเนอร์อิมเมจใน การลงทะเบียน Amazon Elastic Container (Amazon ECR) ซึ่งรวมกับรหัสการฝึกที่กำหนดเองเมื่อเปิดคอนเทนเนอร์การฝึก เอาต์พุตการฝึกจะถูกรวบรวมและส่งไปยังบัคเก็ต S3 ที่ระบุ ในส่วนต่อไปนี้ เราเรียนรู้วิธีใช้ทรัพยากรเหล่านี้ผ่าน SageMaker SDK
เราใช้บริการของ AWS เช่น Amazon SageMaker และ Amazon S3 ซึ่งต้องเสียค่าธรรมเนียมการใช้ทรัพยากรระบบคลาวด์
ตั้งค่าสภาพแวดล้อมการพัฒนา
SageMaker มีอินสแตนซ์สมุดบันทึก Jupyter ที่มีการจัดการ สำหรับการสร้างแบบจำลอง การฝึกอบรม และอื่นๆ คุณสามารถดำเนินกิจกรรม ML ได้อย่างมีประสิทธิภาพและง่ายดายผ่านโน้ตบุ๊ก Jupyter สำหรับคำแนะนำในการตั้งค่าสภาพแวดล้อมการทำงานของโน้ตบุ๊ก Jupyter โปรดดูที่ เริ่มต้นใช้งานอินสแตนซ์โน้ตบุ๊ก Amazon SageMaker.
หรือคุณอาจต้องการทำงานร่วมกับ สตูดิโอ Amazon SageMaker. ดูคำแนะนำได้ที่ เริ่มต้นใช้งานสมุดบันทึกสำหรับสตูดิโอ.
ดาวน์โหลดซอร์สโค้ด
ซอร์สโค้ดมีอยู่ใน ตัวอย่าง SageMaker ที่เก็บ GitHub.
- เกี่ยวกับ ไป เมนูให้เลือก โคลนที่เก็บ.
- ป้อนโคลน URI ของที่เก็บ (
https://github.com/aws/amazon-sagemaker-examples.git
). - Choose โคลน.
เมื่อการดาวน์โหลดเสร็จสิ้น ให้เรียกดูโครงสร้างซอร์สโค้ดผ่านเบราเซอร์ไฟล์
- เปิดสมุดบันทึก
build_gan_with_pytorch.ipynb
ซึ่งอยู่ภายใต้โฟลเดอร์/amazon-sagemaker-examples/advanced_functionality/pytorch_bring_your_own_gan/
. - ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร เลือกเคอร์เนล ป๊อปอัป เลือก conda_pytorch_latest_p36.
หากใช้สภาพแวดล้อม Studio ให้เลือก Python3 (PyTorch 1.6 Python 3.6 GPU เพิ่มประสิทธิภาพ) เคอร์เนลแทน
รหัสและสมุดบันทึกที่ใช้ในโพสต์นี้มีอยู่ที่ GitHubและทั้งหมดได้รับการยืนยันด้วย Python 3.6, PyTorch 1.5 และ JupyterLab ที่จัดการโดย SageMaker
เครือข่ายปฏิปักษ์เชิงลึก (DCGAN)
ในปี 2016 Alec Radford และคณะ ตีพิมพ์บทความ “การเรียนรู้การเป็นตัวแทนแบบไม่มีผู้ดูแลด้วย Deep Convolutional Generative Adversarial Networks”. สิ่งนี้เป็นผู้บุกเบิกการประยุกต์ใช้โครงข่ายประสาทเทียมกับ GAN ในการออกแบบอัลกอริธึม เลเยอร์ที่เชื่อมต่อทั้งหมดจะถูกแทนที่ด้วยเลเยอร์แบบหมุนวน ซึ่งช่วยเพิ่มความเสถียรของการฝึกในสถานการณ์การสร้างภาพ
โครงสร้างเครือข่าย
เครือข่ายเครื่องกำเนิดไฟฟ้าใช้เลเยอร์การสลับชั้นแบบสลับก้าวเพื่อปรับปรุงความละเอียดของเทนเซอร์ รูปร่างอินพุตคือ (batch_size
, 100) และรูปร่างผลลัพธ์คือ (batch_size
, 64, 64, 3). กล่าวอีกนัยหนึ่ง เครือข่ายยอมรับเวกเตอร์การกระจายแบบสม่ำเสมอ 100 มิติ จากนั้นจึงผ่านการเปลี่ยนแปลงอย่างต่อเนื่องจนกว่าจะสร้างภาพสุดท้าย
เครือข่าย discriminator รับรูปภาพในรูปแบบ (64, 64, 3) ใช้เลเยอร์ 2D convolutional สำหรับการสุ่มตัวอย่าง และสุดท้ายส่งผ่านไปยังเลเยอร์ที่เชื่อมต่อแบบเต็มสำหรับการจัดประเภท
กระบวนการฝึกอบรมของแบบจำลอง DCGAN สามารถแบ่งคร่าวๆ ได้เป็นสามกระบวนการย่อย
ประการแรก เครือข่ายเครื่องกำเนิดใช้ตัวเลขสุ่มเป็นอินพุตเพื่อสร้างภาพสังเคราะห์ จากนั้นจะใช้รูปภาพของแท้และรูปภาพสังเคราะห์เพื่อฝึกเครือข่ายผู้เลือกปฏิบัติและอัปเดตพารามิเตอร์ สุดท้าย จะอัปเดตพารามิเตอร์เครือข่ายของเครื่องกำเนิดไฟฟ้า
โครงสร้างรหัส
โครงสร้างไฟล์ของไดเร็กทอรีโครงการ pytorch_bring_your_own_gan
จะเป็นดังนี้:
ไฟล์ train.py
มีสามคลาส: เครือข่ายเครื่องกำเนิด Generator
, เครือข่ายผู้แยกแยะ Discriminator
และคลาส wrapper สำหรับกระบวนการฝึกอบรมแบบกลุ่มเดียว ดูรหัสต่อไปนี้:
พื้นที่ train.py
ไฟล์ยังมีฟังก์ชั่นหลายอย่างซึ่งใช้เพื่ออำนวยความสะดวกในการฝึกอบรมเครือข่ายของ Generator
และ Discriminator
. หน้าที่หลักบางประการมีดังนี้:
การพัฒนาแบบจำลอง
ในระหว่างการพัฒนา คุณอาจเรียกใช้ train.py
สคริปต์โดยตรงจากบรรทัดคำสั่ง Linux คุณสามารถระบุช่องข้อมูลอินพุต โมเดลไฮเปอร์พารามิเตอร์ และการจัดเก็บเอาต์พุตการฝึกผ่านอาร์กิวเมนต์บรรทัดคำสั่ง (สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ใช้ PyTorch กับ SageMaker Python SDK):
การออกแบบพารามิเตอร์สคริปต์การฝึกอบรมดังกล่าวไม่เพียงแต่ให้วิธีการดีบักที่ดีเท่านั้น แต่ยังเป็นโปรโตคอลและข้อกำหนดเบื้องต้นสำหรับการผสานรวมกับคอนเทนเนอร์ SageMaker โดยคำนึงถึงความยืดหยุ่นของการพัฒนาแบบจำลองและการเคลื่อนย้ายของสภาพแวดล้อมการฝึกอบรม
การฝึกแบบจำลองและการตรวจสอบ
ค้นหาและเปิดไฟล์สมุดบันทึก build_gan_with_pytorch.ipynb
ซึ่งแนะนำและดำเนินการตามขั้นตอนการฝึกอบรม รหัสบางส่วนในส่วนนี้ถูกละไว้ โปรดดูรายละเอียดในโน้ตบุ๊ก
ดาวน์โหลดข้อมูล
ชุดข้อมูลสาธารณะจำนวนมากมีอยู่บนอินเทอร์เน็ตซึ่งเป็นประโยชน์อย่างมากสำหรับวิศวกรรม ML และการวิจัยทางวิทยาศาสตร์ เช่น การศึกษาและประเมินอัลกอริธึม เราใช้ชุดข้อมูล MNIST ซึ่งเป็นชุดข้อมูลตัวเลขที่เขียนด้วยลายมือ เพื่อฝึกโมเดล DCGAN และสร้างตัวเลขที่เขียนด้วยลายมือสังเคราะห์ในที่สุด ดูรหัสต่อไปนี้:
เตรียมข้อมูล
กรอบงาน PyTorch มี torchvision.datasets
แพ็คเกจซึ่งให้การเข้าถึงชุดข้อมูลหลายชุด คุณสามารถใช้คำสั่งต่อไปนี้เพื่ออ่านชุดข้อมูล MNIST ที่ดาวน์โหลดล่วงหน้าจากที่จัดเก็บในตัวเครื่องเพื่อใช้ในภายหลัง:
SageMaker SDK จะสร้างบัคเก็ต S3 เริ่มต้นให้คุณเข้าถึงไฟล์และข้อมูลต่างๆ ที่คุณอาจต้องการในวงจรชีวิตวิศวกรรม ML เราสามารถรับชื่อของที่ฝากข้อมูลนี้ผ่าน default_bucket
วิธีการของ sagemaker.session.Session
คลาสใน SageMaker SDK:
SageMaker SDK มีเครื่องมือสำหรับใช้งานบริการของ AWS ตัวอย่างเช่น S3Downloader
คลาสใช้เพื่อดาวน์โหลดอ็อบเจ็กต์ใน Amazon S3 และ S3Uploader
ใช้เพื่ออัปโหลดไฟล์ในเครื่องไปยัง Amazon S3 คุณอัปโหลดไฟล์ชุดข้อมูลไปยัง Amazon S3 สำหรับการฝึกโมเดล ระหว่างการฝึกโมเดล เราจะไม่ดาวน์โหลดข้อมูลจากอินเทอร์เน็ตเพื่อหลีกเลี่ยงเวลาแฝงของเครือข่ายที่เกิดจากการดึงข้อมูลจากอินเทอร์เน็ต นอกจากนี้ยังช่วยหลีกเลี่ยงความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นจากการเข้าถึงอินเทอร์เน็ตโดยตรง ดูรหัสต่อไปนี้:
ฝึกโมเดล
ผ่านทาง sagemaker.get_execution_role()
วิธีการ สมุดบันทึกสามารถรับบทบาทที่กำหนดไว้ล่วงหน้าให้กับอินสแตนซ์ของโน้ตบุ๊ก บทบาทนี้ใช้เพื่อรับทรัพยากรการฝึกอบรม เช่น ดาวน์โหลดอิมเมจเฟรมเวิร์กการฝึกอบรม การจัดสรรอินสแตนซ์ EC2 และอื่นๆ
ไฮเปอร์พารามิเตอร์ที่ใช้ในงานการฝึกโมเดลสามารถกำหนดในโน้ตบุ๊ก เพื่อให้แยกออกจากอัลกอริธึมและโค้ดการฝึก ไฮเปอร์พารามิเตอร์จะถูกส่งต่อเมื่อมีการสร้างงานการฝึกอบรมและรวมเข้ากับงานการฝึกอบรมแบบไดนามิก ดูรหัสต่อไปนี้:
พื้นที่ คลาส PyTorch จาก sagemaker.pytorch
package เป็นตัวประมาณสำหรับกรอบงาน PyTorch คุณสามารถใช้เพื่อสร้างและเรียกใช้งานการฝึกอบรม ในรายการพารามิเตอร์ instance_type
ระบุประเภทของอินสแตนซ์การฝึก เช่น อินสแตนซ์ CPU หรือ GPU ไดเร็กทอรีที่มีสคริปต์การฝึกอบรมและรหัสรุ่นถูกระบุโดย source_dir
และต้องกำหนดชื่อสคริปต์การฝึกอบรมอย่างชัดเจนโดย entry_point
. พารามิเตอร์เหล่านี้จะถูกส่งต่อไปยังงานการฝึกอบรมพร้อมกับพารามิเตอร์อื่นๆ และกำหนดการตั้งค่าสภาพแวดล้อมของงานการฝึกอบรม ดูรหัสต่อไปนี้:
ให้ความสนใจเป็นพิเศษกับ use_spot_instances
พารามิเตอร์. คุณค่าของ True
นี่หมายความว่าคุณต้องการใช้อินสแตนซ์ Spot เพื่อฝึกโมเดล เนื่องจากการฝึกอบรม ML มักจะต้องใช้ทรัพยากรการคำนวณจำนวนมากในการทำงานเป็นเวลานาน การใช้อินสแตนซ์ Spot สามารถช่วยคุณควบคุมต้นทุนได้ อินสแตนซ์ Spot อาจประหยัดค่าใช้จ่ายได้มากถึง 90% เมื่อเทียบกับอินสแตนซ์ตามความต้องการ ราคาจริงอาจแตกต่างกันไปขึ้นอยู่กับประเภทอินสแตนซ์ ภูมิภาค และเวลา
คุณได้สร้างอ็อบเจ็กต์ PyTorch แล้ว และคุณสามารถใช้วัตถุดังกล่าวเพื่อให้พอดีกับข้อมูลการฝึกที่อัปโหลดล่วงหน้าบน Amazon S3 คำสั่งต่อไปนี้เริ่มต้นงานการฝึกอบรม และข้อมูลการฝึกอบรมจะถูกโหลดลงในที่จัดเก็บในเครื่องของอินสแตนซ์การฝึกอบรมในรูปแบบของช่องสัญญาณเข้าชื่อ MNIST
. เมื่องานการฝึกอบรมเริ่มต้นขึ้น ข้อมูลการฝึกอบรมมีอยู่แล้วในระบบไฟล์ในเครื่องของอินสแตนซ์การฝึกอบรม และสคริปต์การฝึกอบรม train.py
สามารถเข้าถึงข้อมูลจากโลคัลดิสก์ในภายหลัง
กระบวนการฝึกอบรมอาจใช้เวลาหลายสิบนาทีถึงหลายชั่วโมงทั้งนี้ขึ้นอยู่กับอินสแตนซ์การฝึกอบรมที่คุณเลือก เราแนะนำให้ตั้งค่า wait
พารามิเตอร์ False
ซึ่งถอดโน้ตบุ๊กออกจากงานฝึกอบรม ในสถานการณ์ที่มีเวลาการฝึกนานและบันทึกการฝึกจำนวนมาก สามารถป้องกันไม่ให้บริบทของสมุดบันทึกสูญหายเนื่องจากการหยุดชะงักของเครือข่ายหรือการหมดเวลาของเซสชัน หลังจากที่ถอดโน้ตบุ๊กออกจากงานการฝึกแล้ว เอาต์พุตจะไม่ปรากฏให้เห็นชั่วคราว เรียกใช้รหัสต่อไปนี้เพื่อให้สมุดบันทึกได้รับและดำเนินการฝึกอบรมครั้งก่อนต่อ:
เนื่องจากโมเดลได้รับการออกแบบให้ใช้พลังงาน GPU เพื่อเร่งการฝึกอบรม อินสแตนซ์ GPU จึงเร็วกว่าอินสแตนซ์ CPU มาก ตัวอย่างเช่น อินสแตนซ์ g4dn.2xlarge ใช้เวลาประมาณ 12 นาที ในขณะที่อินสแตนซ์ c5.xlarge อาจใช้เวลานานกว่า 6 ชั่วโมง โมเดลปัจจุบันไม่รองรับการฝึกแบบหลายอินสแตนซ์ ดังนั้น instance_count
พารามิเตอร์ที่มีค่ามากกว่า 1 ไม่ได้ทำให้เกิดประโยชน์พิเศษในการเพิ่มประสิทธิภาพเวลาฝึกอบรม
เมื่องานฝึกอบรมเสร็จสิ้น ระบบจะรวบรวมและอัปโหลดโมเดลที่ได้รับการฝึกอบรมไปยัง Amazon S3 ตำแหน่งอัพโหลดถูกระบุโดย output_path
พารามิเตอร์ซึ่งมีให้เมื่อสร้าง PyTorch
วัตถุ.
ทดสอบโมเดล
คุณดาวน์โหลดโมเดลที่ได้รับการฝึกจาก Amazon S3 ไปยังระบบไฟล์ในเครื่องของอินสแตนซ์โน้ตบุ๊ก ซึ่งโน้ตบุ๊ก Jupyter นี้ทำงานอยู่ โค้ดต่อไปนี้จะโหลดและรันโมเดล จากนั้นจึงสร้างรูปภาพของตัวเลขที่เขียนด้วยลายมือจากตัวเลขสุ่มเป็นอินพุต:
กรณีใช้งาน: ข้อมูลสังเคราะห์ที่ส่งเสริมการจดจำข้อความที่เขียนด้วยลายมือ
GAN และ DCGAN ได้รับมาจากตัวแปรจำนวนมากที่แก้ไขปัญหาที่แตกต่างกันในโดเมนที่เกี่ยวข้อง ลองดูกรณีการใช้งานเดียวซึ่งออกแบบมาเพื่อลดความพยายามและค่าใช้จ่ายในการรวบรวมข้อมูลและการทำหมายเหตุประกอบ รวมทั้งปรับปรุงประสิทธิภาพของระบบจดจำข้อความที่เขียนด้วยลายมือ
สแครบเบิลGAN (ดูที่ repo GitHub) ที่ได้รับการแนะนำโดยนักวิทยาศาสตร์จาก Amazon เป็นวิธีกึ่งควบคุมเพื่อสังเคราะห์ภาพข้อความที่เขียนด้วยลายมือที่ใช้งานได้หลากหลายทั้งในรูปแบบและพจนานุกรม มันอาศัยแบบจำลองกำเนิดใหม่ที่สามารถสร้างภาพของคำที่มีความยาวตามอำเภอใจ ตัวสร้างสามารถจัดการรูปแบบข้อความที่ได้ ตัวอย่างเช่น ไม่ว่าข้อความจะเป็นตัวเขียน หรือเส้นขีดของปากกาจะบางเพียงใด
คำจำกัดความของปัญหา
การรู้จำอักขระด้วยแสง (OCR) โดยเฉพาะอย่างยิ่งระบบการรู้จำข้อความที่เขียนด้วยลายมือ (HTR) ได้เห็นการปรับปรุงประสิทธิภาพที่สำคัญในยุคการเรียนรู้เชิงลึก อย่างไรก็ตาม HTR ที่อิงจากการเรียนรู้เชิงลึกนั้นถูกจำกัดด้วยตัวอย่างการฝึกอบรมจำนวนหนึ่ง กล่าวคือ การรวบรวมและติดฉลากข้อมูลเป็นงานที่ท้าทายและมีค่าใช้จ่ายสูง
นักวิทยาศาสตร์ของ Amazon มุ่งเป้าไปที่การขาดข้อความที่เขียนด้วยลายมือที่หลากหลายและมีคำอธิบายประกอบ และความยากในการได้มา นักวิทยาศาสตร์ของ Amazon ได้แนะนำโซลูชันการเรียนรู้แบบกึ่งดูแลโดยการสร้างข้อความที่สังเคราะห์ได้สมจริง ลดความจำเป็นในการใส่คำอธิบายประกอบและเพิ่มความหลากหลายของข้อมูลการฝึกอบรมทั้งในรูปแบบและพจนานุกรม .
สถาปัตยกรรมเครือข่าย
ตรงกันข้ามกับเครือข่ายที่เกี่ยวข้องกับข้อความส่วนใหญ่ที่อาศัยโครงข่ายประสาทเทียมแบบเกิดซ้ำ (RNN) ScrabbleGAN นำเสนอสถาปัตยกรรมการสร้างข้อความที่เขียนด้วยลายมือแบบผสมผสานอย่างสมบูรณ์ ซึ่งช่วยให้สามารถแสดงผลที่ยาวได้ตามอำเภอใจ สถาปัตยกรรมนี้เรียนรู้การฝังอักขระโดยไม่ต้องใช้คำอธิบายประกอบระดับอักขระ
การเขียนด้วยลายมือเป็นกระบวนการในท้องถิ่น—จดหมายแต่ละฉบับได้รับอิทธิพลจากบรรพบุรุษและผู้สืบทอด ความสนใจของซินธิไซเซอร์มุ่งเน้นไปที่เพื่อนบ้านที่อยู่ใกล้เคียงของจดหมายฉบับปัจจุบัน และตัวสร้าง G ได้รับการออกแบบมาเพื่อเลียนแบบกระบวนการนี้ แทนที่จะสร้างภาพจากการแทนคำทั้งคำ เลเยอร์การสุ่มตัวอย่างซ้ำแต่ละชั้นจะขยายฟิลด์ที่เปิดกว้าง เช่นเดียวกับการทับซ้อนระหว่างอักขระสองตัวที่อยู่ใกล้เคียง การทับซ้อนกันนี้ช่วยให้อักขระที่อยู่ติดกันโต้ตอบได้ และสร้างการเปลี่ยนแปลงที่ราบรื่น สไตล์ของแต่ละภาพถูกควบคุมโดยเวกเตอร์สัญญาณรบกวน z ที่กำหนดเป็นอินพุตไปยังเครือข่าย เพื่อสร้างสไตล์เดียวกันสำหรับทั้งคำหรือประโยค เวกเตอร์สัญญาณรบกวนนี้คงที่ตลอดการสร้างอักขระทั้งหมดในอินพุต
วัตถุประสงค์ของ discriminator D คือการระบุภาพสังเคราะห์ที่สร้างโดย G จากภาพจริง นอกจากนี้ยังแยกแยะระหว่างภาพดังกล่าวตามรูปแบบการเขียนด้วยลายมือ สถาปัตยกรรม discriminator ต้องคำนึงถึงความยาวที่แตกต่างกันของภาพที่สร้างขึ้น ดังนั้นจึงได้รับการออกแบบมาให้บิดเบี้ยว และโดยพื้นฐานแล้วเป็นการต่อกันของตัวแยกประเภทไบนารีที่แยกจากกันกับช่องรับข้อมูลที่ทับซ้อนกัน เนื่องจากได้รับการออกแบบมาให้ไม่ต้องอาศัยคำอธิบายประกอบระดับอักขระ จึงไม่ใช้การควบคุมชั้นเรียนสำหรับตัวแยกประเภทเหล่านี้ ดังนั้นจึงสามารถใช้รูปภาพที่ไม่มีป้ายกำกับเพื่อฝึก D ได้ เลเยอร์ที่รวมกลุ่มจะรวมคะแนนจากตัวแยกประเภททั้งหมดลงในเอาต์พุตตัวแบ่งแยกขั้นสุดท้าย
ในขณะที่ discriminator D ส่งเสริมภาพที่ดูเหมือนจริง ตัวจำแนกประเภท R จะส่งเสริมข้อความที่อ่านได้ โดยในสาระสำคัญคือการระบุระหว่างข้อความที่ไม่มีความหมายและข้อความจริง รูปภาพที่สร้างขึ้นจะถูกลงโทษโดยการเปรียบเทียบข้อความที่รู้จักในเอาต์พุตของ R กับข้อความที่ป้อนให้กับ G R ได้รับการฝึกฝนเฉพาะกับตัวอย่างที่เขียนด้วยลายมือจริง ติดฉลาก และเขียนด้วยลายมือเท่านั้น
เครือข่ายการรู้จำส่วนใหญ่ใช้โมดูลที่เกิดซ้ำ ซึ่งเรียนรู้รูปแบบภาษาโดยนัย ซึ่งช่วยให้ระบุอักขระที่ถูกต้องได้ แม้ว่าจะไม่ได้เขียนไว้อย่างชัดเจนก็ตาม แม้ว่าคุณภาพนี้มักจะต้องการในแบบจำลองการรู้จำลายมือ ในกรณีข้อมูลสังเคราะห์นี้ อาจทำให้เครือข่ายอ่านอักขระได้อย่างถูกต้องซึ่งไม่ได้เขียนไว้อย่างชัดเจนโดยเครื่องกำเนิด G ดังนั้น หัวหน้าเครือข่ายการรู้จำที่เกิดขึ้นซ้ำจึงไม่ใช่ ไม่รวมและใช้เฉพาะกระดูกสันหลังส่วนโค้งเท่านั้น
สรุป
เฟรมเวิร์ก PyTorch ซึ่งเป็นหนึ่งในเฟรมเวิร์กการเรียนรู้เชิงลึกที่ได้รับความนิยมมากที่สุด มีความก้าวหน้าอย่างรวดเร็ว และได้รับการยอมรับและนำไปใช้อย่างกว้างขวางในช่วงไม่กี่ปีที่ผ่านมา โมเดลใหม่ ๆ ถูกสร้างขึ้นด้วย PyTorch และมีการย้ายโมเดลที่มีอยู่จำนวนมากจากเฟรมเวิร์กอื่นไปยัง PyTorch มันได้กลายเป็นหนึ่งในกรอบการเรียนรู้เชิงลึกหลักโดยพฤตินัยแล้ว
SageMaker ผสานรวมกับบริการต่างๆ ของ AWS อย่างใกล้ชิด เช่น อินสแตนซ์ EC2 ประเภทต่างๆ, Amazon S3 และ Amazon ECR โดยมอบประสบการณ์ ML แบบ end-to-end ที่สอดคล้องกันสำหรับผู้ปฏิบัติงาน ML ของเฟรมเวิร์กทั้งหมด SageMaker ยังคงสนับสนุนเฟรมเวิร์ก ML หลัก ซึ่งรวมถึง PyTorch อัลกอริทึมและโมเดล ML ที่พัฒนาด้วย PyTorch สามารถย้ายไปยังสภาพแวดล้อม SageMaker ได้อย่างง่ายดายโดยใช้โน้ตบุ๊ก Jupyter ที่มีการจัดการเต็มรูปแบบ, อินสแตนซ์การฝึกอบรม Spot, Amazon ECR, SageMaker SDK และอื่นๆ ซึ่งช่วยลดค่าใช้จ่ายของการดำเนินงานด้านวิศวกรรมและโครงสร้างพื้นฐานของ ML ปรับปรุงประสิทธิภาพและประสิทธิผล และลดต้นทุนการดำเนินงานและการบำรุงรักษา
ข้อมูลสังเคราะห์ที่สร้างโดย GAN มีคุณลักษณะที่หลากหลายและสมบูรณ์ และสามารถผลิตได้ในปริมาณมาก ดังนั้น คุณสามารถใช้มันเพื่อปรับปรุงประสิทธิภาพของแบบจำลองได้โดยการเสริมชุดการฝึก นอกจากนี้ เทคนิคนี้สามารถลดความพยายามและค่าใช้จ่ายในการรวบรวมข้อมูลและติดฉลากได้
DCGAN เป็นจุดสังเกตในด้านเครือข่ายกำเนิดของฝ่ายตรงข้าม และเป็นรากฐานที่สำคัญของเครือข่ายปฏิปักษ์ที่มีความซับซ้อนสมัยใหม่จำนวนมากในปัจจุบัน เราสำรวจ GAN เวอร์ชันล่าสุดและน่าสนใจบางส่วนในโพสต์ในภายหลัง บทนำและแนวทางปฏิบัติด้านวิศวกรรมที่กล่าวถึงในโพสต์นี้สามารถช่วยให้คุณเข้าใจหลักการและวิธีการทางวิศวกรรมสำหรับ GAN โดยทั่วไป ลองใช้เครื่องกำเนิดสัญญาณรุ่นแรกของคุณ ซึ่งมีให้ในชื่อ ตัวอย่าง ของ SageMaker ขอให้สนุก แล้วพบกันใหม่
เกี่ยวกับผู้เขียน
ลอเรนซ์ MIAO, Solutions Architect ที่ AWS Laurence เชี่ยวชาญด้าน AI/ML เขาช่วยให้ลูกค้าส่งเสริมธุรกิจด้วย AI/ML บน AWS ก่อน AWS ลอเรนซ์เคยทำงานในโปรเจ็กต์ซอฟต์แวร์และองค์กรต่างๆ สเปกตรัมทางเทคโนโลยีของเขาครอบคลุมการใช้งานอินเทอร์เน็ตที่มีประสิทธิภาพสูง การบูรณาการระบบข้อมูลองค์กร DevOps คลาวด์คอมพิวติ้ง และการเรียนรู้ของเครื่อง
ที่มา: https://aws.amazon.com/blogs/machine-learning/build-gan-with-pytorch-and-amazon-sagemaker/
- '
- "
- 100
- 2016
- 9
- เข้า
- ลงชื่อเข้าใช้
- กิจกรรม
- ที่อยู่
- การโฆษณา
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- อเมซอน
- Amazon EC2
- อเมซอน SageMaker
- การใช้งาน
- การใช้งาน
- สถาปัตยกรรม
- AREA
- ข้อโต้แย้ง
- บทความ
- จริง
- AWS
- การส่งเสริม
- เบราว์เซอร์
- สร้าง
- การก่อสร้าง
- ธุรกิจ
- ที่เกิดจาก
- เปลี่ยนแปลง
- ช่อง
- การรู้จำอักขระ
- สารเคมี
- การจัดหมวดหมู่
- เมฆ
- คอมพิวเตอร์เมฆ
- รหัส
- ชุด
- คำนวณ
- การคำนวณ
- ภาชนะ
- ภาชนะบรรจุ
- ต่อ
- อย่างต่อเนื่อง
- ค่าใช้จ่าย
- การสร้าง
- ปัจจุบัน
- ลูกค้า
- ข้อมูล
- การเรียนรู้ลึก ๆ
- โครงข่ายประสาทลึก
- ออกแบบ
- พัฒนาการ
- เครื่อง
- DevOps
- ตัวเลข
- โดเมน
- ผล
- อย่างมีประสิทธิภาพ
- ให้อำนาจ
- ชั้นเยี่ยม
- เพิ่มคุณค่า
- Enterprise
- ความบันเทิง
- สิ่งแวดล้อม
- โดยเฉพาะอย่างยิ่ง
- ตัวอย่าง
- ประสบการณ์
- ประสบการณ์
- เร็วขึ้น
- คุณสมบัติ
- ค่าธรรมเนียม
- สาขา
- ในที่สุด
- ชื่อจริง
- พอดี
- ความยืดหยุ่น
- โฟกัส
- ฟอร์ม
- รูป
- กรอบ
- ฟรี
- เต็ม
- สนุก
- ฟังก์ชั่น
- เกม
- GAN
- General
- สร้าง
- เครือข่ายปฏิปักษ์โดยกำเนิด
- แบบจำลองการกำเนิด
- GitHub
- ดี
- GPU
- หัว
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- แยกแยะ
- ภาพ
- การสร้างภาพ
- รวมทั้ง
- อุตสาหกรรม
- ข้อมูล
- โครงสร้างพื้นฐาน
- บูรณาการ
- อินเทอร์เน็ต
- IT
- การสัมภาษณ์
- โน้ตบุ๊ค Jupyter
- ชุด
- การติดฉลาก
- ภาษา
- ใหญ่
- นำ
- เรียนรู้
- การเรียนรู้
- ถูก จำกัด
- Line
- ลินุกซ์
- รายการ
- ในประเทศ
- ที่ตั้ง
- นาน
- เรียนรู้เครื่อง
- หลัก
- สำคัญ
- ส่วนใหญ่
- ภาพบรรยากาศ
- ML
- อัลกอริทึม ML
- แบบ
- เป็นที่นิยม
- เพื่อนบ้าน
- เครือข่าย
- เครือข่าย
- ประสาท
- เครือข่ายประสาท
- เครือข่ายประสาทเทียม
- สัญญาณรบกวน
- โน๊ตบุ๊ค
- OCR
- เสนอ
- เปิด
- การดำเนินงาน
- ใบสั่ง
- องค์กร
- อื่นๆ
- กระดาษ
- รูปแบบไฟล์ PDF
- การปฏิบัติ
- มุมมอง
- ยา
- ภาพ
- ยอดนิยม
- โพสต์
- อำนาจ
- ราคา
- ผลิต
- ผลผลิต
- โครงการ
- โครงการ
- ให้
- สาธารณะ
- หลาม
- ไฟฉาย
- คุณภาพ
- เหมือนจริง
- ลด
- ความต้องการ
- การวิจัย
- ทรัพยากร
- แหล่งข้อมูล
- วิ่ง
- วิ่ง
- sagemaker
- ประหยัด
- การวิจัยทางวิทยาศาสตร์
- นักวิทยาศาสตร์
- SDK
- ความปลอดภัย
- เมล็ดพันธุ์
- ความรู้สึก
- บริการ
- ชุด
- การตั้งค่า
- ง่าย
- So
- ซอฟต์แวร์
- โซลูชัน
- จุด
- Stability
- เริ่มต้น
- ข้อความที่เริ่ม
- สถานะ
- การเก็บรักษา
- ก้าวย่าง
- ศึกษา
- สนับสนุน
- ข้อมูลสังเคราะห์
- ระบบ
- ระบบ
- เทคโนโลยี
- เทคนิค
- tensorflow
- การสร้างข้อความ
- ที่มา
- ตลอด
- เวลา
- เครื่องมือ
- ไฟฉาย
- การฝึกอบรม
- การแปลง
- บันทึก
- การปรับปรุง
- URI
- ความคุ้มค่า
- อย่างกว้างขวาง
- วิกิพีเดีย
- ไม่มี
- คำ
- งาน
- ปี