การเรียนรู้ลึก (Pytorch) - ND101 V7
พื้นที่เก็บข้อมูลนี้มีเนื้อหาที่เกี่ยวข้องกับโปรแกรมการเรียนรู้อย่างลึกซึ้งของ Udacity V7 Nanodegree ประกอบด้วยสมุดบันทึกการสอนสำหรับหัวข้อการเรียนรู้ที่หลากหลาย ในกรณีส่วนใหญ่สมุดบันทึกจะนำคุณผ่านการใช้แบบจำลองเช่นเครือข่าย convolutional เครือข่ายกำเริบและ Gans มีหัวข้ออื่น ๆ ที่ครอบคลุมเช่นการเริ่มต้นน้ำหนักและการทำให้เป็นมาตรฐานเป็นชุด
นอกจากนี้ยังมีสมุดบันทึกที่ใช้เป็นโครงการสำหรับโปรแกรม Nanodegree ในโปรแกรมเองโครงการจะได้รับการตรวจสอบโดยคนจริง (ผู้ตรวจสอบ Udacity) แต่รหัสเริ่มต้นมีอยู่ที่นี่เช่นกัน
สารบัญ
บทเรียน
บทนำสู่เครือข่ายประสาท
- บทนำสู่เครือข่ายประสาท: เรียนรู้วิธีการใช้เชื้อสายไล่ระดับสีและนำไปใช้กับการทำนายรูปแบบในข้อมูลการรับสมัครนักเรียน
- การวิเคราะห์ความเชื่อมั่นด้วย Numpy: Andrew Trask นำคุณผ่านการสร้างแบบจำลองการวิเคราะห์ความเชื่อมั่นโดยทำนายว่าข้อความบางอย่างเป็นบวกหรือลบ
- บทนำสู่ Pytorch: เรียนรู้วิธีการสร้างเครือข่ายประสาทใน Pytorch และใช้เครือข่ายที่ผ่านการฝึกอบรมมาแล้วสำหรับตัวแยกประเภทภาพที่ทันสมัย
เครือข่ายประสาท
- เครือข่ายประสาทของ Convolutional: แสดงภาพผลลัพธ์ของเลเยอร์ที่ประกอบขึ้นเป็น CNN เรียนรู้วิธีการกำหนดและฝึกอบรม CNN สำหรับการจำแนกข้อมูล MNIST ซึ่งเป็นฐานข้อมูลหลักที่เขียนด้วยลายมือที่มีชื่อเสียงในด้านของเครื่องจักรและการเรียนรู้อย่างลึกซึ้ง นอกจากนี้กำหนดและฝึกอบรม CNN สำหรับการจำแนกรูปภาพในชุดข้อมูล CIFAR10
- ถ่ายโอนการเรียนรู้ ในทางปฏิบัติคนส่วนใหญ่ไม่ได้ฝึกอบรมเครือข่ายของตัวเองในชุดข้อมูลขนาดใหญ่ พวกเขาใช้เครือข่าย ที่ผ่านการฝึกอบรมมาแล้ว เช่น VGGNET ที่นี่คุณจะใช้ VGGNET เพื่อช่วยจำแนกภาพของดอกไม้โดยไม่ต้องฝึกอบรมเครือข่ายแบบ end-to-end ตั้งแต่เริ่มต้น
- การเริ่มต้นน้ำหนัก: สำรวจว่าการเริ่มต้นน้ำหนักเครือข่ายมีผลต่อประสิทธิภาพอย่างไร
- AutoEncoders: สร้างโมเดลสำหรับการบีบอัดภาพและ de-noising โดยใช้เครือข่าย feedforward และ convolutional ใน pytorch
- การถ่ายโอนสไตล์: สกัดคุณสมบัติสไตล์และเนื้อหาจากรูปภาพโดยใช้เครือข่ายที่ผ่านการฝึกอบรมมาก่อน ใช้การถ่ายโอนสไตล์ตามกระดาษการถ่ายโอนสไตล์ภาพโดยใช้เครือข่ายประสาทแบบ convolutional โดย Gatys et อัล กำหนดความสูญเสียที่เหมาะสมสำหรับการสร้างภาพเป้าหมายการถ่ายโอนสไตล์การออกแบบของคุณเอง!
เครือข่ายประสาทกำเริบ
- อินโทรไปยังเครือข่ายที่เกิดขึ้นอีก (อนุกรมเวลาและระดับอักขระ RNN): เครือข่ายประสาทที่เกิดขึ้นซ้ำสามารถใช้ข้อมูลเกี่ยวกับลำดับของข้อมูลเช่นลำดับของอักขระในข้อความ; เรียนรู้วิธีการใช้สิ่งเหล่านี้ใน Pytorch สำหรับงานที่หลากหลาย
- EMBEDDINGS (WORD2VEC): ใช้โมเดล Word2VEC เพื่อค้นหาการแสดงความหมายของคำสำหรับใช้ในการประมวลผลภาษาธรรมชาติ
- การวิเคราะห์ความเชื่อมั่น RNN: ใช้เครือข่ายประสาทที่เกิดขึ้นอีกซึ่งสามารถทำนายได้ว่าข้อความของการทบทวนการเคลื่อนไหวเป็นบวกหรือลบ
- ความสนใจ: ใช้ความสนใจและนำไปใช้กับเวกเตอร์คำอธิบายประกอบ
เครือข่ายศัตรู
- เครือข่ายศัตรูที่เกิดขึ้นจาก MNIST: ฝึกอบรมเครือข่ายฝ่ายตรงข้ามที่ง่ายในชุดข้อมูล MNIST
- การทำให้เป็นมาตรฐานแบทช์: เรียนรู้วิธีการปรับปรุงอัตราการฝึกอบรมและความมั่นคงของเครือข่ายด้วยการทำให้เป็นมาตรฐาน
- Deep Convolutional Gan (DCGAN): ใช้ DCGAN เพื่อสร้างภาพใหม่ตามชุดข้อมูลหมายเลขบ้านวิว Street View (SVHN)
- Cyclegan: ใช้งาน Cyclegan ที่ออกแบบมาเพื่อเรียนรู้จากข้อมูลที่ไม่มีคู่และไม่มีป้ายกำกับ ใช้เครื่องกำเนิดไฟฟ้าที่ผ่านการฝึกอบรมเพื่อแปลงภาพตั้งแต่ฤดูร้อนเป็นฤดูหนาวและในทางกลับกัน
การปรับใช้โมเดล (กับ AWS Sagemaker)
- สมุดบันทึกการออกกำลังกายและโครงการทั้งหมดสำหรับบทเรียนเกี่ยวกับการปรับใช้แบบจำลองสามารถพบได้ใน GitHub Repo ที่เชื่อมโยง เรียนรู้ที่จะปรับใช้โมเดลที่ผ่านการฝึกอบรมมาก่อนโดยใช้ AWS Sagemaker
โครงการ
- การทำนายรูปแบบการแชร์จักรยาน: ใช้เครือข่ายประสาทใน Numpy เพื่อทำนายการเช่าจักรยาน
- ตัวจําแนกสายพันธุ์สุนัข: สร้างเครือข่ายประสาทแบบ convolutional ด้วย pytorch เพื่อจำแนกภาพใด ๆ (แม้แต่ภาพใบหน้า) เป็นสายพันธุ์สุนัขที่เฉพาะเจาะจง
- การสร้างสคริปต์ทีวี: ฝึกอบรมเครือข่ายประสาทที่เกิดขึ้นอีกเพื่อสร้างสคริปต์ในรูปแบบของการสนทนาจาก Seinfeld
- การสร้างใบหน้า: ใช้ dcgan บนชุดข้อมูล Celeba เพื่อสร้างภาพของใบหน้ามนุษย์ใหม่และสมจริง
วัสดุที่เลือก
- Intro to Tensorflow: เริ่มสร้างเครือข่ายประสาทด้วย TensorFlow
- Keras: เรียนรู้ที่จะสร้างเครือข่ายประสาทและเครือข่ายประสาทเทียมกับ Keras
การพึ่งพาอาศัยกัน
กำหนดค่าและจัดการสภาพแวดล้อมของคุณด้วย Anaconda
ตามเอกสาร Anaconda:
Conda เป็นระบบการจัดการแพ็คเกจโอเพนซอร์สและระบบการจัดการสภาพแวดล้อมสำหรับการติดตั้งแพ็คเกจซอฟต์แวร์หลายรุ่นและการพึ่งพาและการสลับระหว่างพวกเขาอย่างง่ายดาย มันใช้งานได้กับ Linux, OS X และ Windows และถูกสร้างขึ้นสำหรับโปรแกรม Python แต่สามารถบรรจุและแจกจ่ายซอฟต์แวร์ใด ๆ
ภาพรวม
การใช้ Anaconda ประกอบด้วยสิ่งต่อไปนี้:
- ติดตั้ง
miniconda บนคอมพิวเตอร์ของคุณโดยเลือกรุ่น Python ล่าสุดสำหรับระบบปฏิบัติการของคุณ หากคุณติดตั้ง conda หรือ miniconda อยู่แล้วคุณควรจะข้ามขั้นตอนนี้และไปยังขั้นตอนที่ 2 - สร้างและเปิดใช้งาน * สภาพแวดล้อม
conda ใหม่
* ทุกครั้งที่คุณต้องการทำงานในแบบฝึกหัดใด ๆ เปิดใช้งานสภาพแวดล้อม conda ของคุณ!
1. การติดตั้ง
ดาวน์โหลด miniconda เวอร์ชันล่าสุดที่ตรงกับระบบของคุณ
| ลินเวกซ์ | Mac | หน้าต่าง |
|---|
| 64 บิต | 64 บิต (ตัวติดตั้ง Bash) | 64 บิต (ตัวติดตั้ง Bash) | 64 บิต (ตัวติดตั้ง EXE) |
| 32 บิต | 32 บิต (ตัวติดตั้ง Bash) | | 32 บิต (ตัวติดตั้ง EXE) |
ติดตั้ง Miniconda บนเครื่องของคุณ คำแนะนำโดยละเอียด:
- Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
- Mac: https://conda.io/projects/conda/en/latest/user-guide/install/macos.html
- Windows: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html
2. สร้างและเปิดใช้งานสภาพแวดล้อม
สำหรับผู้ใช้ Windows คำสั่งต่อไปนี้จะต้องดำเนินการจาก พรอมต์ Anaconda เมื่อเทียบกับหน้าต่าง Windows Terminal สำหรับ Mac หน้าต่างเทอร์มินัลปกติจะทำงาน
การควบคุม Git และเวอร์ชัน
คำแนะนำเหล่านี้ยังถือว่าคุณติดตั้ง git สำหรับการทำงานกับ GitHub จากหน้าต่างเทอร์มินัล แต่ถ้าคุณไม่ทำคุณสามารถดาวน์โหลดได้ก่อนด้วยคำสั่ง:
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการควบคุมเวอร์ชันและการใช้ git จากบรรทัดคำสั่งลองดูหลักสูตรฟรีของเรา: การควบคุมเวอร์ชันด้วย Git
ตอนนี้เราพร้อมที่จะสร้างสภาพแวดล้อมในท้องถิ่นของเรา!
- โคลนที่เก็บและนำทางไปยังโฟลเดอร์ที่ดาวน์โหลด อาจใช้เวลาหนึ่งหรือสองนาทีในการโคลนเนื่องจากข้อมูลภาพที่รวมอยู่
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
สร้าง (และเปิดใช้งาน) สภาพแวดล้อมใหม่ที่ชื่อว่า deep-learning ด้วย Python 3.6 หากได้รับแจ้งให้ดำเนินการกับการติดตั้ง (Proceed [y]/n) ประเภท y
conda create -n deep-learning python=3.6
source activate deep-learning
conda create --name deep-learning python=3.6
activate deep-learning
ณ จุดนี้บรรทัดคำสั่งของคุณควรมีลักษณะเช่น: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ (deep-learning) บ่งชี้ว่าสภาพแวดล้อมของคุณได้รับการเปิดใช้งานและคุณสามารถดำเนินการติดตั้งแพ็คเกจเพิ่มเติมได้
ติดตั้ง pytorch และ torchvision; สิ่งนี้ควรติดตั้ง Pytorch เวอร์ชันล่าสุด
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
ติดตั้งแพ็คเกจ PIP ที่จำเป็นบางอย่างซึ่งระบุไว้ในไฟล์ข้อความข้อกำหนด (รวมถึง OpENCV)
pip install -r requirements.txt
- แค่ไหน!
ตอนนี้ห้องสมุด deep-learning ส่วนใหญ่มีให้คุณ บางครั้งคุณจะเห็นที่เก็บข้อมูลที่มีไฟล์ข้อกำหนดเพิ่มเติมซึ่งมีอยู่หากคุณต้องการใช้ TensorFlow และ Keras ในกรณีนี้คุณได้รับการสนับสนุนให้ติดตั้งห้องสมุดอื่นไปยังสภาพแวดล้อมที่มีอยู่ของคุณหรือสร้างสภาพแวดล้อมใหม่สำหรับโครงการเฉพาะ
ตอนนี้สมมติว่าสภาพแวดล้อม deep-learning ของคุณยังคงเปิดใช้งานคุณสามารถนำทางไปยัง repo หลักและเริ่มดูสมุดบันทึก:
cd
cd deep-learning-v2-pytorch
jupyter notebook
หากต้องการออกจากสภาพแวดล้อมเมื่อคุณเสร็จสิ้นเซสชันการทำงานเพียงปิดหน้าต่างเทอร์มินัล