tf.gradients จัดการฟังก์ชันที่ซับซ้อนอย่างไร

ฉันกำลังทำงานกับโครงข่ายประสาทเทียมที่มีมูลค่าเชิงซ้อน

สำหรับโครงข่ายประสาทเทียมที่มีค่าเชิงซ้อน โดยปกติจะใช้แคลคูลัส Wirtinger คำจำกัดความของอนุพันธ์คือ (คำนึงว่าฟังก์ชันไม่ใช่โฮโลมอร์ฟิกเนื่องจากทฤษฎีบทของลิอูวิลล์):

wirtinger

หากคุณอ่านหนังสือของ Akira Hirose เรื่อง "โครงข่ายประสาทเทียมที่มีคุณค่าเชิงซ้อน: ความก้าวหน้าและการประยุกต์" สมการบทที่ 4 4.9 กำหนด:

ภาพหน้าจอจาก 2020-03-03 10-38-21

โดยที่อนุพันธ์บางส่วนคำนวณโดยใช้แคลคูลัสของ Wirtinger ด้วย

นี่เป็นกรณีของเทนเซอร์โฟลว์หรือไม่? หรือมันถูกกำหนดไว้ด้วยวิธีอื่น? ฉันไม่พบข้อมูลอ้างอิงที่ดีในหัวข้อนี้


person Agustin Barrachina    schedule 19.07.2019    source แหล่งที่มา
comment
ฉันไม่รู้มากนัก (หรืออะไรก็ตาม) เกี่ยวกับการวิเคราะห์ที่ซับซ้อน แต่บางทีหากคุณสามารถยกตัวอย่างฟังก์ชันที่ไม่ใช่โฮโลมอร์ฟิกได้ เราก็จะสามารถดูว่า TensorFlow ทำอะไรเกี่ยวกับการไล่ระดับสีได้ แม้ว่า TF จะรองรับเทนเซอร์ที่ซับซ้อน แต่ฉันไม่แน่ใจว่ามีการใช้การไล่ระดับสีในระดับใด (สำหรับการคำนวณทางคณิตศาสตร์อย่างง่ายดูเหมือนว่าจะใช้งานได้ แต่ฉันไม่รู้เกี่ยวกับการดำเนินการที่ซับซ้อนกว่านี้) แม้ว่า TensorFlow จะถือว่าฟังก์ชันไม่สามารถสร้างความแตกต่างได้ แต่คุณสามารถใช้การไล่ระดับสีได้ด้วยตัวเองด้วย tf.gradient (แต่นั่นอาจไม่ใช่สิ่งที่คุณสนใจในตอนนี้)   -  person jdehesa    schedule 19.07.2019


คำตอบ (1)


ตกลง ดังนั้นฉันจึงพูดคุยเรื่องนี้ในกระทู้ที่มีอยู่ใน github/tensorflow และพบ @charmasaur การตอบสนอง สมการที่ใช้โดย Tensorflow สำหรับการไล่ระดับสีคือ:

tf-grad-def

เมื่อใช้คำจำกัดความของอนุพันธ์ย่อย wrt z และ z* จะใช้ Wirtinger Calculus


สำหรับกรณีของฟังก์ชันสเกลาร์มูลค่าจริงของตัวแปรเชิงซ้อนหนึ่งหรือหลายตัว คำจำกัดความนี้จะกลายเป็น:

ซึ่งเป็นคำจำกัดความที่ใช้ในแอปพลิเคชัน Complex-Valued Neural Networks (CVNN) อย่างแท้จริง (ในแอปพลิเคชันนี้ฟังก์ชันคือฟังก์ชัน loss/error ซึ่งเป็นฟังก์ชันจริง)

person Agustin Barrachina    schedule 25.09.2019
comment
ฉันได้ไม่ติดแท็กสิ่งนี้เป็นวิธีแก้ปัญหาเพราะฉันยังต้องการแหล่งที่มา/ข้อมูลอ้างอิงที่ตรวจสอบได้ที่สามารถอ้างอิงได้ ฉันต้องการข้อมูลอ้างอิงที่ยืนยันว่านี่คือสมการของ Tensorflow หรือใครบางคนใน Tensorflow ที่ทำงานกับสิ่งนี้ซึ่งบอกฉันว่ามันถูกต้องจริงๆ - person Agustin Barrachina; 02.03.2020
comment
และขอที่นี่ด้วย - person Agustin Barrachina; 02.03.2020