ขอแนะนำความคล้ายคลึงของ TensorFlow

โหนดต้นทาง: 1079311

ขอแนะนำความคล้ายคลึงของ TensorFlow

TensorFlowคล้ายคลึงกันเป็นไลบรารีที่เพิ่งเปิดตัวจาก Google ที่อำนวยความสะดวกในการฝึกอบรม การจัดทำดัชนี และการสืบค้นโมเดลที่คล้ายคลึงกัน ตรวจสอบเพิ่มเติมที่นี่


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

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

ในทำนองเดียวกันนี้ เราสามารถใช้แบบจำลองความคล้ายคลึงกันเพื่อเปรียบเทียบ เช่น ยานพาหนะ ตัวอย่างเช่น รถยนต์ซีดาน BMW และ Mercedes จะถูกฝังไว้ใกล้กัน ในขณะที่รถจักรยานยนต์ Yamaha และ Kawasaki จะพบว่าตัวเองถูกฝังไว้ใกล้กัน รถจักรยานยนต์จะค่อนข้างอยู่ห่างจากรถเก๋ง ซึ่งในทางกลับกันก็จะอยู่ห่างจากยานพาหนะที่ไม่เหมือนกันอื่นๆ เช่น เรือ รถบ้าน รถตู้ จักรยาน เป็นต้น

รูป
ภาพรวมโมเดลความคล้ายคลึงกัน (แหล่ง)

 

การเรียนรู้เชิงลึกใช้เพื่อฝึกโครงข่ายประสาทเทียมซึ่งมักพบว่าตัวเองถูกใช้สำหรับโมเดลความคล้ายคลึงกันเหล่านี้ เพื่ออำนวยความสะดวกในการฝึกอบรมโมเดลดังกล่าว Google ได้เปิดตัวเมื่อเร็ว ๆ นี้ ความคล้ายคลึงกันของ TensorFlow.

Tensorflowคล้ายคลึงกันนำเสนออัลกอริธึมล้ำสมัยสำหรับการเรียนรู้หน่วยเมตริกและองค์ประกอบที่จำเป็นทั้งหมดเพื่อการวิจัย ฝึกอบรม ประเมิน และให้บริการโมเดลที่อิงความคล้ายคลึงกัน

หลังจากที่โมเดลได้รับการฝึกฝนแล้ว ดัชนีการฝังจะถูกสร้างขึ้นเพื่ออำนวยความสะดวกในการค้นหา สำหรับการค้นหา TFที่คล้ายกันจะใช้การค้นหาเพื่อนบ้านที่ใกล้ที่สุดอย่างรวดเร็ว (ANN) เพื่อดึงข้อมูลที่ใกล้เคียงที่สุด เนื่องจากระยะห่างระหว่างรายการที่ฝังไว้เป็นฟังก์ชันของการวัดระยะทาง การค้นหาจึงรวดเร็วและแม่นยำโดยใช้ ANN

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

รูป
ภาพรวมความคล้ายคลึงกันของ TensorFlow (แหล่ง)

 

TensorFlowคล้ายคลึงกันอำนวยความสะดวกในการฝึกอบรมโมเดลความคล้ายคลึงกัน เช่นเดียวกับการสืบค้นที่ตามมา ใช้งานง่าย โดยเฉพาะอย่างยิ่งกับการเปิดตัวโมเดล Keras ใหม่ SimilarityModel()ซึ่งรองรับการฝังการจัดทำดัชนีและการสืบค้น ด้วยความคล้ายคลึงกันของ TF การฝึกอบรมโมเดลตั้งแต่ต้นจนจบและการสอบถามจึงตรงไปตรงมา

เพื่อสาธิต นี่คือโค้ดตัวอย่างจากความคล้ายคลึงกันของ TF ที่เก็บ GitHub ที่ฝึกฝน จัดทำดัชนี และสืบค้นชุดข้อมูล MNIST อย่างกระชับ

จากเลเยอร์การนำเข้า tensorflow.keras # การฝังเลเยอร์เอาต์พุตด้วยบรรทัดฐาน L2 จาก tensorflow_similarity.layers นำเข้า MetricEmbedding # การสูญเสียเมตริกแบบพิเศษจาก tensorflow_similarity.losses นำเข้า MultiSimilarityLoss # โมเดล keras คลาสย่อยพร้อมรองรับการจัดทำดัชนีจาก tensorflow_similarity.models นำเข้าที่คล้ายกัน Model # ตัวอย่างข้อมูลที่ดึงชุดข้อมูล โดยตรงจากแคตตาล็อกชุดข้อมูล tf จาก tensorflow_similarity.samplers นำเข้า TFDatasetMultiShotMemorySampler # Visualizer เพื่อนบ้านที่ใกล้ที่สุดจาก tensorflow_similarity.visualization นำเข้า viz_neigbors_imgs # ตัวอย่างข้อมูลที่สร้างแบตช์ที่สมดุลจากตัวอย่างชุดข้อมูล MNIST = TFDatasetMultiShotMemorySampler (dataset_name='mnist', class_per_batch=10) # สร้าง รูปแบบความคล้ายคลึงกัน การใช้เลเยอร์ Keras มาตรฐาน input =layers.Input(shape=(28, 28, 1)) x =layers.Rescaling(1/255)(inputs) x =layers.Conv2D(64, 3, activation='relu')( x) x = layer.Flatten()(x) x = layer.Dense(64, activation='relu')(x) outputs = MetricEmbedding(64)(x) # สร้างแบบจำลองความคล้ายคลึงกันเฉพาะ model =likeityModel(inputs, ผลลัพธ์) # ฝึกโมเดลความคล้ายคลึงกันโดยใช้การสูญเสียเชิงตัด model.compile('adam', loss=MultiSimilarityLoss()) model.fit(sampler, epochs=5) # ดัชนี 100 ตัวอย่าง MNIST ที่ฝังไว้เพื่อให้ค้นหาได้ sx, sy = Sampler.get_slice (0,100) model.index(x=sx, y=sy, data=sx) # ค้นหาตัวอย่าง MNIST ที่มีการจัดทำดัชนีคล้ายกันมากที่สุด 5 อันดับแรกสำหรับตัวอย่างที่กำหนด qx, qy = Sampler.get_slice(3713, 1) nns = model.single_lookup (qx[0]) # แสดงภาพตัวอย่างแบบสอบถามและเพื่อนบ้าน 5 อันดับแรก viz_neigbors_imgs(qx[0], qy[0], nns)


หากคุณพบว่าตัวเองกำลังมองหาสิ่งที่เหมือนกับสิ่งอื่นๆ TensorFlowที่คล้ายกันอาจช่วยได้ คุณสามารถหาข้อมูลเพิ่มเติมได้ที่ repo GitHubหรือตรวจสอบ สวัสดีชาวโลก ตัวอย่างเพื่อให้ถูกต้อง

 
ที่เกี่ยวข้อง:

ที่มา: https://www.kdnuggets.com/2021/09/introcing-tensorflow-similarity.html

ประทับเวลา:

เพิ่มเติมจาก KD นักเก็ต