ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง
โหนด เส้นเชื่อม เมทริกซ์การติดกัน ประเภทของกราฟ คุณลักษณะกราฟ และการแทนเครือข่ายสังคม
ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
กราฟคืออะไร
กราฟใช้จำลองเอนทิตีและความสัมพันธ์ระหว่างเอนทิตีเหล่านั้น ตามนิยามอย่างเป็นทางการ กราฟคือ G = (V, E) โดย V คือเซตของจุดยอด (โหนด) และ E คือเซตของเส้นเชื่อมที่เชื่อมโหนดเป็นคู่ ระบบจริงจำนวนมากมีลักษณะเป็นกราฟโดยธรรมชาติ
โหนดและเส้นเชื่อม
แต่ละโหนดแทนเอนทิตีหนึ่งรายการ (ผู้ใช้ อะตอม หรือเว็บเพจ) แต่ละเส้นเชื่อมแทนความสัมพันธ์ (มิตรภาพ พันธะเคมี หรือลิงก์ไฮเปอร์ลิงก์) การเรียนรู้ของเครื่องบนกราฟเรียนรู้จากโครงสร้างการเชื่อมโยงนี้ ไม่ใช่จากตัวอย่างที่แยกขาดจากกันเท่านั้น
เมทริกซ์การเชื่อมต่อ
เมทริกซ์การเชื่อมต่อ A ใช้เข้ารหัสว่าโหนดใดเชื่อมต่อกัน สำหรับโหนดจำนวน n โหนด A จะมีขนาด n คูณ n โดย A[i][j] = 1 หากมีเส้นเชื่อมระหว่างโหนด i กับโหนด j มิฉะนั้นจะเป็น 0
import numpy as np
# Triangle: 0-1, 1-2, 0-2
A = np.array([
[0, 1, 1],
[1, 0, 1],
[1, 1, 0],
])คุณลักษณะของโหนด X
นอกจากโครงสร้างแล้ว โดยทั่วไปแต่ละโหนดยังมีเวกเตอร์คุณลักษณะของตนเอง เมื่อนำมาเรียงซ้อนกันจะได้เมทริกซ์คุณลักษณะ X ที่มีรูปร่าง (num_nodes, num_features) สำหรับกราฟสังคม แถวหนึ่งอาจเก็บอายุของผู้ใช้ จำนวนโพสต์ และอายุบัญชี
X = np.array([
[25, 120, 3.0], # node 0
[31, 45, 5.5], # node 1
[22, 300, 1.2], # node 2
])เมทริกซ์ดีกรี
ดีกรีของโหนดคือจำนวนเส้นเชื่อมของโหนดนั้น ส่วนเมทริกซ์ดีกรี D เป็นเมทริกซ์แนวทแยง โดยสมาชิกแต่ละตัวบนแนวทแยงมีค่าเท่ากับดีกรีของโหนดนั้น เมทริกซ์นี้เป็นองค์ประกอบพื้นฐานสำหรับลาปลาเซียนของกราฟ
D = np.diag(A.sum(axis=1))
# Each diagonal entry = number of neighborsลาปลาเซียนของกราฟ
ลาปลาเซียนของกราฟกำหนดโดย L = D - A ลาปลาเซียนใช้แสดงความแตกต่างของค่าระหว่างโหนดที่เชื่อมต่อกัน และเป็นแนวคิดพื้นฐานของทฤษฎีกราฟเชิงสเปกตรัมรวมถึงการสร้าง GNN หลายรูปแบบ
L = D - A
print(L)เหตุใดลาปลาเซียนจึงสำคัญ
ค่าลักษณะเฉพาะและเวกเตอร์ลักษณะเฉพาะของลาปลาเซียนเผยให้เห็นโครงสร้างระดับโลก เช่น การเชื่อมต่อ กลุ่มย่อย และความเรียบ การทำคอนโวลูชันบนกราฟมักพัฒนามาจากลาปลาเซียน ดังนั้นการเข้าใจ L = D - A จึงเป็นกุญแจสำคัญในการเข้าใจ GNN
กราฟมีทิศทางและไม่มีทิศทาง
ในกราฟไม่มีทิศทาง เส้นเชื่อมจะไม่มีทิศทาง (เช่น มิตรภาพ) ดังนั้น A จึงสมมาตร ส่วนในกราฟมีทิศทาง เส้นเชื่อมจะชี้ไปทางเดียว (เช่น ผู้ติดตามหรือการอ้างอิง) ทำให้ A อาจไม่สมมาตรได้: A[i][j] อาจแตกต่างจาก A[j][i]
# Directed: 0 -> 1 but not 1 -> 0
A_dir = np.array([
[0, 1, 0],
[0, 0, 1],
[0, 0, 0],
])กราฟถ่วงน้ำหนัก
เส้นเชื่อมสามารถมีน้ำหนักเพื่อแทนความแรงหรือระยะทางได้ ดังนั้นสมาชิกของเมทริกซ์การเชื่อมต่อจึงเป็นจำนวนจริง ไม่ใช่เพียง 0 หรือ 1 เครือข่ายถนนอาจกำหนดน้ำหนักของเส้นเชื่อมเป็นเวลาเดินทาง ส่วนกราฟความคล้ายคลึงอาจใช้น้ำหนักเป็นค่าความคล้ายคลึงแบบโคไซน์
การแทนเส้นเชื่อมอย่างมีประสิทธิภาพ
สำหรับกราฟเบาบางขนาดใหญ่ เมทริกซ์การเชื่อมต่อจะสิ้นเปลืองหน่วยความจำ เนื่องจากสมาชิกส่วนใหญ่มีค่าเป็นศูนย์ เฟรมเวิร์กการเรียนรู้ของเครื่องจึงมักจัดเก็บเส้นเชื่อมเป็นรายการเส้นเชื่อม (รูปแบบ COO) ซึ่งเป็นอาร์เรย์สองชุดที่ระบุโหนดต้นทางและโหนดปลายทางของแต่ละเส้นเชื่อม PyTorch Geometric เรียกโครงสร้างนี้ว่า edge_index
# Triangle edges as edge_index [2, num_edges]
edge_index = [
[0, 0, 1], # sources
[1, 2, 2], # targets
]การประยุกต์ใช้การเรียนรู้ของเครื่องบนกราฟ
กราฟปรากฏอยู่ในทุกที่:
- สังคม: การแนะนำเพื่อน การตรวจหาชุมชน
- โมเลกุล: การทำนายคุณสมบัติของโมเลกุล (อะตอม = โหนด พันธะ = เส้นเชื่อม)
- กราฟความรู้: การทำนายเส้นเชื่อมระหว่างเอนทิตีและความสัมพันธ์
- เว็บและการอ้างอิง: การจัดอันดับและการจำแนก
ตรวจสอบความเข้าใจอย่างรวดเร็ว
โปรดทดสอบความรู้ด้านทฤษฎีกราฟของคุณ
สรุปทบทวน
คุณได้เรียนรู้พื้นฐานทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่องดังนี้
- กราฟคือ
G = (V, E)ซึ่งประกอบด้วยโหนดและเส้นเชื่อม - เมทริกซ์การเชื่อมต่อ A ใช้เข้ารหัสการเชื่อมต่อ ส่วน X เก็บคุณลักษณะของโหนด
- ลาปลาเซียนของกราฟคือ
L = D - A - กราฟอาจมีหรือไม่มีทิศทาง และอาจถ่วงน้ำหนักหรือไม่ถ่วงน้ำหนัก
- การประยุกต์ใช้ครอบคลุมกราฟสังคม กราฟโมเลกุล และกราฟความรู้
คำถามที่พบบ่อย
บทเรียน “ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง”
โหนด เส้นเชื่อม เมทริกซ์การติดกัน ประเภทของกราฟ คุณลักษณะกราฟ และการแทนเครือข่ายสังคม คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทฤษฎีกราฟสำหรับการเรียนรู้ของเครื่อง
- โครงข่ายกราฟคอนโวลูชัน (GCN)
- การจำแนกโหนดด้วย GNN
- การพยากรณ์เส้นเชื่อมและการจำแนกกราฟ