شبکه های عصبی با اطلاعات فیزیک (PINN): یک راهنمای بصری

شبکه های عصبی با اطلاعات فیزیک (PINN): یک راهنمای بصری

(قابل خواندن) چیستی، چگونه و چرایی فیزیک به شبکه های عصبی اطلاع داد

تصویر توسط نویسنده


اگر تا به حال سعی کرده‌اید ادبیات موجود در مورد شبکه‌های عصبی مبتنی بر فیزیک (PINN) را بخوانید، خواندن آن سخت است! یا بسیاری از معادلات که برای اکثر مردم ناآشنا خواهد بود و فرضیاتی مبنی بر اینکه شما در حال حاضر در همه مفاهیم متخصص هستید، یا خیلی ساده برای به دست آوردن درک خوب. هدف این پست این است که پین‌ها را به روشی شهودی طی کند، و همچنین برخی پیشرفت‌ها را نسبت به ادبیات فعلی پیشنهاد می‌کند.


ایجاد مدل فیزیک سنتی وظیفه یک متخصص حوزه است که مدل‌های فیزیک را به بهترین نحو تنظیم می‌کند تا با یک سیستم مورد علاقه مطابقت داشته باشد. به عنوان مثال، ایجاد یک مدل از دینامیک هواپیما با استفاده از معادلات کشش، بالابر، گرانش، رانش، و غیره، و پارامتری کردن مدل برای تلاش برای تطبیق نزدیک مدل با یک هواپیمای خاص.


رویکرد شبکه عصبی صرفاً مبتنی بر داده تلاش برای یادگیری مدل با استفاده از یادگیری نظارت شده با یک شبکه عصبی از داده های به دست آمده از یک سیستم خاص است.


شبکه‌های عصبی با اطلاعات فیزیکی (PINN) در تقاطع این دو قرار دارند. استفاده از شبکه های عصبی نظارت شده مبتنی بر داده برای یادگیری مدل، اما همچنین استفاده از معادلات فیزیک که به مدل داده شده است تا سازگاری با فیزیک شناخته شده سیستم را تشویق کند. آنها این مزیت را دارند که هم برای یادگیری یک مدل داده محور هستند، هم می توانند از سازگاری با فیزیک اطمینان حاصل کنند و هم می توانند به طور دقیق فراتر از داده های موجود برون یابی کنند. به این ترتیب، پین‌ها می‌توانند مدل‌های قوی‌تری را با داده‌های کمتر تولید کنند.

پین ها در تقاطع بین شبکه های عصبی و فیزیک قرار دارند. تصویر توسط نویسنده


درک شبکه های عصبی، سینماتیک، و معادلات دیفرانسیل معمولی و جزئی برای هضم کامل محتوای این صفحه بسیار مفید خواهد بود، اما برای درک بصری ضروری نیست.


بیشتر نمونه‌های PINN در ادبیات مبتنی بر معادلات فیزیک مانند حرکت سیال (Navier-Stokes)، نور و انتشار موج (معادله غیرخطی شرودینگر، Korteweg-De Vries) یا سایر توابع از این قبیل هستند و توابع را با توجه به زمان در نظر می‌گیرند. [1].


برای به دست آوردن شهود، پین ها را با استفاده از قوانین حرکت بررسی خواهیم کرد. به طور دقیق تر، ما از حرکت پرتابه به عنوان مثال استفاده خواهیم کرد زیرا یک مثال ساده برای کاوش ارائه می دهد، اما به اندازه کافی پیچیده است که جنبه های مختلف پین ها را پوشش دهد.


در پایان این مقاله، نحوه عملکرد یک PINN، و معاوضه‌ها و تفاوت‌های بین PINN، شبکه‌های عصبی مبتنی بر داده خالص و توابع فیزیک خالص را خواهیم فهمید.

حرکت پرتابه (مبتنی بر زمان)


اجازه دهید عملکرد حرکت پرتابه (پرتابه ای در سقوط آزاد) را با اثرات گرانش و کشش در نظر بگیریم. از نظر معادلات فیزیک که حرکت پرتابه را توصیف می کند و روابط بین آنها، ما قبلاً چیزی در مورد این مشکل می دانیم.


https://social.msdn.microsoft.com/profile/manakeith2/

https://freelanceprj92912322.wordpress.com/2022/09/04/%d8%b3%d9%81%d8%a7%d8%b1%d8%b4-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%b3%d8%a7%db%8c%d8%aa/

https://old.reddit.com/r/business/comments/x5m8f6/%D8%B3%D9%81%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%AE%D8%AA_%D8%B3%D8%A7%DB%8C%D8%AA/?

https://www.4shared.com/u/IPRA_RVP/ManaKeith2.html

https://www.evernote.com/shard/s452/client/snv?noteGuid=3349e794-5d30-7b48-9fe9-6fd2caaa2973&&noteKey=7ebf9eb1ebbe675ba7469b1c8678259f&&sn=https://www.evernote.com/shard/s452/sh/3349e794-5d30-7b48-9fe9-6fd2caaa2973/7ebf9eb1ebbe675ba7469b1c8678259f&&title=%D8%B3%D9%81%D8%A7%D8%B1%D8%B4+%D8%B3%D8%A7%D8%AE%D8%AA+%D8%B3%D8%A7%DB%8C%D8%AA

بردار جابجایی (موقعیت) پرتابه در زمان t با تابع زیر تعریف می شود:


اولین مشتق جابجایی بردار سرعت را می دهد که به صورت زیر تعریف می شود:


و مشتق دوم شتاب می دهد که به صورت زیر تعریف می شود:


شتاب پرتابه به صورت زیر محاسبه می شود:


که در آن μ ضریب درگ (متغیر ناشناخته)، و g بردار جاذبه (متغیر شناخته شده) است. اساساً، شتاب یک پرتابه در یک نقطه معین از زمان نسبت به سرعت فعلی آن در جهت مخالف حرکت (کشش) و پایین کشیدن آن توسط گرانش است.


به طور شهودی، مشتقات میزان تغییر یک تابع را به ما می گویند. به عنوان مثال، وقتی مشتق سرعت (شتاب) 0 باشد، به ما می گوید که سرعت تغییر نمی کند. وقتی شتاب مثبت است، سرعت در حال افزایش است. وقتی شتاب منفی است، سرعت در حال کاهش است.


می توانیم متوجه شویم که شتاب به سرعت بستگی دارد. به این ترتیب، هیچ راه حل شکل بسته ای برای جابجایی وجود ندارد، زیرا هیچ معادله محدودی وجود ندارد که جابجایی را در زمان معین t به ما بدهد. ما باید به روش های ادغام عددی مانند Runge-Kutta متوسل شویم.

جابجایی منفرد حقیقتی زمینی یک پرتابه در حال حرکت (مسیر) با موقعیت و سرعت اولیه، تحت تأثیر جاذبه و پسا. تصویر توسط نویسنده

در دنیای ایده آل…


رویکرد ابتدایی برای آموزش یک شبکه عصبی شامل یادگیری تحت نظارت وانیلی، با استفاده از داده های کامل در کل دامنه مورد نظر است.


در اینجا، هدف شبکه یادگیری است


توجه: تمام گیف های موجود در این صفحه خروجی تابعی را که از طریق آموزش یاد می گیرید را نشان می دهد.

آموزش شبکه عصبی بر روی داده های کامل از کل دامنه. شبکه عصبی قادر است به سرعت یک مدل دقیق از مسیر را یاد بگیرد. تصویر توسط نویسنده


پس مشکل حل شد، درست است؟ اگر تا به حال از یادگیری ماشینی برای یک مشکل دنیای واقعی استفاده کرده باشید، مطمئنا همین الان خواهید خندید :)

واقع بینانه…


با این حال، دسترسی به داده های کامل در کل دامنه به ندرت امکان پذیر است. واقع بینانه تر، ما به داده هایی دسترسی داریم که نویز، پراکنده و ناتمام اتخاذ رویکرد ابتدایی به یادگیری تحت نظارت در این مورد، مدل های نامطلوبی را به ما می دهد.

آموزش شبکه عصبی بر روی داده های پر سر و صدا، پراکنده و ناقص. شبکه عصبی دقیقاً همان کاری را که از آن خواسته شده است انجام می دهد و تابعی را در برابر داده هایی که ما ارائه کرده ایم مطابقت می دهد. با این حال، این تابع برای استفاده مورد نظر خود برای پیش‌بینی جابجایی پرتابه چندان مفید نیست. می توانیم بگوییم "بیش از حد تناسب" دارد. تصویر توسط نویسنده

منظم سازی


یک رویکرد معمولی برای مبارزه با این موضوع استفاده از منظم سازی است.


تنظیم L2 توسط:


این اثر جریمه کردن وزن های بزرگ در شبکه، و به طور شهودی، جریمه سازی تخصصی گرادیان محلی را دارد. با اعمال قانونمندسازی L2، شبکه را تشویق می‌کنیم تا از طریق داده‌ها جا بگیرد، نه با داده‌ها.


برای بخش‌هایی از دامنه که داده‌ها را داریم، تنظیم L2 سودمندی مدل ما را بهبود می‌بخشد. با این حال، در غیاب داده‌هایی که کل دامنه را در بر می‌گیرد، مدل نمی‌تواند فراتر از داده‌های موجود برون‌یابی کند.

آموزش شبکه عصبی بر روی داده های پر سر و صدا، پراکنده و ناقص با استفاده از منظم سازی L2. این مدل در مناطقی که داده ها وجود دارد مفیدتر است، اما قادر به برون یابی در سراسر دامنه نیست. تصویر توسط نویسنده

وارد شبکه عصبی آگاه فیزیک شوید


https://www.behance.net/manakeith2

https://disqus.com/by/manakeith2/about/

https://giphy.com/channel/ManaKeith2

https://en.gravatar.com/manakeith2

https://edex.adobe.com/community/member/xIJycfcK4

https://www.goodreads.com/user/show/155653028-mana-keith2



دقیقاً مانند آموزش با تنظیم L2، یک PINN از دست دادن داده ها را به حداقل می رساند، اما از فیزیک شناخته شده به عنوان یک اصطلاح تنظیم اضافی نیز استفاده می کند.


اساساً، می‌توانیم بگوییم «داده‌ها را برازش می‌کنیم، اما مطمئن شوید که راه‌حل با معادلات فیزیک که می‌دانیم مطابقت دارد».


هدف شبکه یادگیری f(t) با استفاده از یادگیری نظارت شده بر روی داده های موجود است، بنابراین ما از دست دادن داده استاندارد میانگین مربعات خطا (MSE) بین اهداف رگرسیون و مقادیر پیش بینی شده را داریم.


با این حال، ما همچنین می دانیم که شتاب یک پرتابه توسط


ما می توانیم این دانش را در آموزش شبکه عصبی خود بگنجانیم.


از آنجایی که معادلات دیفرانسیل معمولی (ODE)


و

https://www.diigo.com/user/manakeith2

https://dzone.com/users/4784618/manakeith2.html

http://bioimagingcore.be/q2a/user/ManaKeith2

مقادیری را که برای این معادله نیاز داریم به ما بدهید، می‌توانیم از ویژگی‌های تمایز خودکار کتابخانه یادگیری ماشین (ML) خود برای گرفتن مشتقات مرتبه اول و دوم (شیب) شبکه با توجه به ورودی شبکه (زمان t) استفاده کنیم. ) برای به دست آوردن هر دو بردار سرعت و شتاب. سپس می‌توانیم این مشتق‌ها را در معادله جایگزین کنیم تا به شکل زیر به دست آوریم:


بنابراین می گوییم برای اینکه شبکه ما به فیزیک شناخته شده احترام بگذارد، مشتق دوم شبکه ما نسبت به زمان (شتاب) (سمت چپ) باید برابر با تابع مشتق اول (سرعت) (سمت راست) باشد. ). به عبارت دیگر، باید 0 تفاوت بین آنها وجود داشته باشد:


چگونه می توانیم این دانش را در فرآیند آموزش به کار ببریم؟ ما به سادگی می توانیم خطای (MSE) این معادله را به عنوان ضرر اضافی به حداقل برسانیم.


این یک اصطلاح فیزیک از دست دادن به ما می دهد، که تلاش می کند تا خطا بین گرادیان های شبکه (سرعت و شتاب) و معادلات مربوطه ارائه شده توسط فیزیک شناخته شده را به حداقل برساند. به حداقل رساندن از دست دادن داده ها و از دست دادن فیزیک (وزن دار) یک پین به ما می دهد. این تمام چیزی است که وجود دارد ;). از دست دادن داده با نمونه‌هایی از داده‌های آموزشی آموزش داده می‌شود، و از دست دادن فیزیک با نمونه‌هایی از کل دامنه مورد نظر (که ما مشخص می‌کنیم) آموزش داده می‌شود. از آنجایی که از دست دادن فیزیک فقط به ورودی های دامنه و بدون هدف نیاز دارد، ما مختار هستیم که هر استراتژی نمونه گیری مناسبی را انتخاب کنیم (مثلاً نمونه برداری یکنواخت یک استراتژی ساده است).


اما یک چیز باقی می ماند، در اینکه μ (ضریب درگ) متغیری است که ما نمی دانیم. اما ما می توانیم به سادگی μ را به همراه پارامترهای شبکه یک متغیر قابل آموزش بسازیم، به این معنی که μ در طول فرآیند آموزش کشف می شود، یعنی می توانیم از داده ها یاد بگیریم که ضریب درگ پرتابه ما چقدر است.


برای تمام شبکه‌های عصبی در سراسر این نمونه‌ها، شبکه‌ها از معماری 2 لایه کاملاً متصل از 128 نورون، با استفاده از فعال‌سازی‌های واحد خطی خطای گاوسی (GELU) استفاده می‌کنند. اگرچه بیشتر نمونه‌های موجود در ادبیات از فعال‌سازی‌های tanh استفاده می‌کنند، اما متوجه می‌شویم که GELU مزایای نظری و تجربی بسیار بیشتری را ارائه می‌کند [2] [3] [4] (سعی کنید هر نمونه منبع باز PINN را اجرا کنید و tanh را با GELU تعویض کنید). از آنجایی که ما در حال به حداقل رساندن تلفات بر روی گرادیان های شبکه هستیم، هر تابع فعال سازی که استفاده می کنیم باید در همه جا برای گرادیان های پیوسته مناسب قابل تمایز باشد، که مانع از فعال سازی هایی مانند ReLU استاندارد می شود (ReLU به صورت تکه ای خطی است و بنابراین گرادیان های ثابت می دهد).

آموزش شبکه عصبی بر روی داده های پر سر و صدا، پراکنده و ناقص با استفاده از تنظیم فیزیک (PINN). از دست دادن فیزیک به شبکه اجازه می دهد تا هم از طریق نقاط داده منظم شود و هم به روشی مطابق با فیزیک شناخته شده خارج از داده های آموزشی را برون یابی کند. به دلیل حجم کم داده های پر سر و صدا، نمی توان راه حل اصلی را در اینجا کشف کرد. با داده‌های بیشتر و/یا نویز کمتر، شبکه می‌تواند راه‌حل حقیقت را با دقت بسیار بالا بیاموزد. تصویر توسط نویسنده

از دست دادن داده برای اطمینان از تناسب استفاده می شود

داده های آموزشی (بالا)، و از دست دادن فیزیک برای اطمینان از سازگاری با فیزیک شناخته شده در سراسر دامنه (پایین) استفاده می شود. تصویر توسط نویسنده


و اگر کد را به معادلات ترجیح می دهید، در اینجا یک قطعه کد با استفاده از TensorFlow برای پیاده سازی آموزش بالا آورده شده است:


...@tf.function
def train(t_train, s_train, t_phys):
# Data loss

# predict displacement
s_train_hat = net.predict(t_train)
# MSE loss between training data and predictions
data_loss = tf.math.reduce_mean(
tf.math.square(s_train - s_train_hat)
)
# Physics loss

# predict displacement
s_phys_hat = net.predict(t_phys)
# split into individual x and y components
s_x = s_phys_hat[:, 0]
s_y = s_phys_hat[:, 1]
# take the gradients to get predicted velocity and acceleration
v_x = tf.gradients(s_x, t_phys)[0]
v_y = tf.gradients(s_y, t_phys)[0]
a_x = tf.gradients(v_x, t_phys)[0]
a_y = tf.gradients(v_y, t_phys)[0]
# combine individual x and y components into velocity and
# acceleration vectors
v = tf.concat([v_x, v_y], axis=1)
a = tf.concat([a_x, a_y], axis=1)
# as acceleration is the known equation, this is what we want to
# perform gradient descent on.
# therefore, prevent any gradients flowing through the higher
# order (velocity) terms
v = tf.stop_gradient(v)
# define speed (velocity norm, the ||v|| in the equation) and
# gravity vector for physics equation
speed = tf.norm(v, axis=1, keepdims=True)
g = [[0.0, 9.81]]
# MSE between known physics equation and network gradients
phys_loss = tf.math.reduce_mean(
tf.math.square(-mu * speed * v - g - a)
)
# Total loss

loss = data_weight * data_loss + phys_weight * phys_loss

# Gradient step

# minimise the combined loss with respect to both the neural
# network parameters and the unknown physics variable, mu
gradients = tf.gradients(loss, net.train_vars + [mu])
optimiser.apply_gradients(zip(gradients, net.train_vars + [mu]))
...

    ضرر = وزن_داده *از دست دادن_داده + وزن_فیزیک *از دست دادن_فیزیک

    

    # گام گرادیان

    

    # تلفات ترکیبی را با توجه به هر دو عصبی به حداقل برسانید

    # پارامترهای شبکه و متغیر فیزیک ناشناخته، mu

    gradients = tf.gradients (loss, net.train_vars + [mu])

    optimiser.apply_gradients(zip(gradients, net.train_vars + [mu]))...


این مثال ساده کارایی پین ها را نشان می دهد. با مقدار کمی داده های پر سر و صدا، ما توانسته ایم یک مدل قوی و دقیق از پرتابه را بیاموزیم. PINN همچنین پارامترهای فیزیکی (ضریب درگ) پرتابه را در این فرآیند یاد گرفته است. علاوه بر این، از آنجایی که هیچ راه حل شکل بسته ای برای جابجایی پرتابه وجود ندارد، با استفاده از یک PINN ما یک راه حل تحلیلی و بسته تقریبی دقیق برای تابع به دست آورده ایم.

حرکت پرتابه (مبتنی بر حالت)


باز هم، بیشتر مثال‌ها در ادبیات بر روی توابع با توجه به زمان (به‌علاوه سایر متغیرها) متمرکز شده‌اند. اما در مورد مدل هایی که با توجه به وضعیت فعلی سیستم و نه به صراحت زمان هستند، چطور؟ به عبارت دیگر، یک مدل گام به گام.


بیایید مسئله حرکت پرتابه را به عنوان تابعی بیان کنیم که وضعیت فعلی سیستم، در این مورد سرعت، را می گیرد و شتاب را به ما می دهد:


ما می توانیم 2 تابع تعریف کنیم. یکی که مولفه های سرعت x و y را می گیرد و مولفه شتاب x را به ما می دهد و یکی که مولفه های سرعت x و y را می گیرد و مولفه شتاب y را به ما می دهد:


برای به دست آوردن شهود، بیایید مسیر زیر را به دنبال این توابع در نظر بگیریم. ما با یک جابجایی و سرعت اولیه شروع می کنیم و توابع را برای به دست آوردن شتاب های اعمال شده در آن نقطه از زمان جستجو می کنیم. سپس با استفاده از روش یکپارچه سازی عددی مانند Runge-Kutta، شتاب را به سرعت اضافه می کنیم تا جابجایی بدست آوریم. سپس این روند را تکرار می کنیم تا یک مسیر در طول زمان بدست آوریم.


نمودار جابجایی (بالا) در زیر با پیروی از این روش، مسیر را در طول زمان به تصویر می کشد. نمودار میدان بردار شتاب (پایین سمت چپ) شتاب‌ها را برای هر سرعت معین در حوزه نشان می‌دهد، و نمودارهای مولفه شتاب x و y (پایین وسط و راست) مولفه‌های شتاب منفرد میدان برداری (توابع f و h) را نشان می‌دهد. .

تجسم اجرای مدل گام زمانی متشکل از f و h برای تولید یک مسیر. تصویر توسط نویسنده

فیزیک و نزول گرادیان


ممکن است از خود بپرسیم، اگر بتوانیم مقادیر پارامترهای توابع فیزیک را یاد بگیریم، اصلاً چرا نیاز به درگیر کردن شبکه های عصبی داریم؟ به هر حال، ما از فیزیک شناخته شده برای منظم کردن شبکه استفاده می کنیم. چرا فقط از شیب نزول مستقیماً روی توابع فیزیک استفاده نمی کنید؟


اگر بدانیم که توابع حاکم بر داده های ما به صورت زیر ارائه می شوند:


و می‌توانیم پارامتر مجهول μ را یاد بگیریم، سپس می‌توانیم از گرادیان نزول مستقیماً روی توابع فیزیک استفاده کنیم.

آموزش توابع فیزیک به طور مستقیم با استفاده از نزول گرادیان. تابع حقیقت زمین (قاب سیمی خاکستری) با داده‌های آموزشی موجود که توسط تابع (نقاط خاکستری) تولید می‌شود، و تابع فیزیک که مستقیماً از طریق شیب نزول یاد می‌شود (مجنت فریم). تصویر توسط نویسنده


در این مثال، ما قادریم به طور کامل پارامترسازی دقیق توابع فیزیک را از طریق گرادیان یاد بگیریم.

ت نزول پس چرا ما این کار را انجام نمی دهیم؟


در واقع چند دلیل وجود دارد. همانطور که قبلاً در بالا دیدیم، همیشه یک راه حل بسته برای استفاده وجود ندارد که در بسیاری از موارد از این روش جلوگیری می کند.


حتی اگر ما یک راه حل به شکل بسته در دسترس داشته باشیم، زیرا توابع فیزیک توسط پارامتری شدن آنها محدود شده است، گرادیان خطا احتمالا غیر یکنواخت است. این به این معنی است که احتمال زیادی وجود دارد که یادگیری به یک بهینه محلی و نه جهانی همگرا شود.


تابع f زیر را در نظر بگیرید که برای آن داده‌هایی داریم، و سعی می‌کنیم پارامترسازی تابع g را از طریق گرادیان نزول یاد بگیریم. انتقال پارامتر قابل آموزش به فاصله از 0 در هر جهت منجر به گرادیان خطای مثبت می شود (خطا بدتر می شود). بنابراین 0 یک بهینه محلی است و نزول گرادیان در اینجا همگرا می شود. با این حال، اگر a را تا انتها به سمت راست حرکت دهیم، بهینه جهانی را کشف می کنیم، که نزول گرادیان از مقدار اولیه اولیه آن کشف نمی کرد.

مثالی از تابعی که با استفاده از نزول گرادیان مستقیماً روی تابع، پارامترسازی بهینه جهانی را کشف نمی کند. (تصویر توسط نویسنده، ایجاد شده با استفاده از Desmos Graphing Calculator https://www.desmos.com/calculator)


البته روش های بهینه سازی دیگری غیر از گرادیان نزول وجود دارد…


با این حال، هنوز یک مسئله دیگر وجود دارد که به این معنی است که حتی اگر این روش موفق باشد، ممکن است مدل مفیدی به ما ارائه نکند.


در تمام مثال‌های قبلی، توابع فیزیک که استفاده کرده‌ایم، کاملاً نشان‌دهنده تابعی هستند که داده‌ها از آن تولید شده‌اند. با این حال، حتی توابع فیزیک نیز فقط مدل‌هایی هستند، ساده‌سازی دینامیک زیربنایی واقعی.


معادلات حرکت پرتابه که ما استفاده کردیم، فقط کشش و گرانش ثابت را در نظر می گیرند. در مورد نیروی کشش، نیروی رانش، نیروی کوریولیس و غیره وابسته به جهت گیری و ارتفاع چطور؟ تا زمانی که نتوانیم دقیقاً توابع فیزیک زیربنایی را مشخص کنیم، یادگیری پارامتری که به طور دقیق داده های موجود را مدل می کند، ممکن نیست.


به عنوان مثال، اجازه دهید مقداری بالابر ساده به معادلاتی که برای تولید داده های آموزشی استفاده کرده ایم اضافه کنیم:


که در آن Cl ضریب لیفت است. اکنون بیایید سعی کنیم پارامتری از توابع فیزیک را که قبلاً استفاده کرده ایم (بدون بالابر) یاد بگیریم.

آموزش توابع فیزیک (بدون بالابر) روی داده های تولید شده از یک تابع متفاوت (با لیفت). پارامترسازی آموخته شده از توابع فیزیک شناخته شده قادر به ارائه یک مدل مفید از داده های اساسی به ما نیست. تصویر توسط نویسنده


آه… ایده آل نیست. هیچ پارامتری ممکنی وجود ندارد که داده های ما را به دقت مدل کند.

شبکه عصبی آگاه فیزیک


ما می‌توانیم همان تکنیک‌های قبلی را برای آموزش یک PINN در نسخه گام‌به‌گام این کار اعمال کنیم. در حالی که قبل از استفاده از معادلات دیفرانسیل معمولی (ODEs) چون یک متغیر مستقل واحد (زمان) داشتیم، اکنون چندین متغیر مستقل (مؤلفه های سرعت x و y) داریم.


ما می توانیم توابع چندگانه را به عنوان یک شبکه عصبی چند خروجی پیاده سازی کنیم.


همچنین می‌توانیم شیب‌های این تابع را با توجه به متغیرهای مستقل با استفاده از معادلات دیفرانسیل جزئی (PDE) بگیریم:


گرادیان مولفه شتاب x نسبت به مولفه سرعت x.


گرادیان مولفه شتاب y نسبت به مولفه سرعت y.


گرادیان مولفه شتاب x نسبت به مولفه سرعت y.


گرادیان مولفه شتاب y نسبت به مولفه سرعت x.


که در زیر به تصویر کشیده شده اند:


واقعیت جالب: اولین مشتق شتاب jerk نام دارد و مشتق دوم، سوم و چهارم اسنپ، کراکل و پاپ است :)

مشتقات جزئی مطابق معادلات بالا. تصویر توسط نویسنده


با انجام این کار، مشتقات جزئی برای فیزیک شناخته شده را به دست می آوریم. مشابه موارد قبلی، ما می‌توانیم یک تابع تلفات را فرموله کنیم که خطای بین گرادیان خروجی‌های شبکه (متغیرهای وابسته) را با توجه به ورودی‌ها (متغیرهای مستقل) و این معادلات فیزیک شناخته‌شده به حداقل می‌رساند. به حداقل رساندن از دست دادن داده ها و از دست دادن فیزیک (وزن دار) یک پین به ما می دهد. به طور شهودی، اصطلاح وزن دهی می گوید که ما می خواهیم چقدر روی مطابقت با فیزیک در مقابل داده های موجود تأکید کنیم.


با آموزش این پین بر روی کار، می‌توانیم شبکه را با داده‌ها تطبیق دهیم، اما همچنین بر اساس فیزیک شناخته شده داده‌شده، منظم و برون‌یابی می‌کنیم، و همچنین پارامترسازی توابع فیزیک (ضریب درگ در این مورد) را یاد می‌گیریم. ما قادر به تولید یک مدل دقیق هستیم، اما PINN به دلیل استفاده از شبکه عصبی برای یادگیری عملکرد، از مسائل مربوط به نیاز به یک راه حل شکل بسته و بدون همگرایی در بهینه محلی رنج نمی برد. اگرچه داده‌های موجود از یک مسیر تشکیل شده‌اند، اما ما توانسته‌ایم مدل دقیقی از پرتابه را در کل دامنه (یعنی از هر حالتی) به دست آوریم، نه فقط نزدیک به مسیر داده‌های آموزشی.

آموزش یک پین در مورد کار. تابع حقیقت زمین (قاب سیم خاکستری)، داده های آموزشی تولید شده توسط گروه

تابع nd-truth (نقاط خاکستری)، تابع فیزیک که توسط متغیرهای آموخته شده توسط PINN (فریم قرمز سرخابی) و راه حل PINN (سطح سبز) پارامتر شده است. تصویر توسط نویسنده


همانطور که قبلاً هنگام آموزش مستقیم تابع فیزیک با استفاده از نزول گرادیان دیدیم، مگر اینکه فیزیک شناخته شده با تابعی که داده ها را تولید می کند مطابقت داشته باشد، امکان تولید یک مدل مفید وجود ندارد. با این حال، از آنجایی که یک PINN مدلی را بر اساس داده‌های موجود و فیزیک شناخته شده تولید می‌کند، ما می‌توانیم مدلی تولید کنیم که بهترین‌های هر دو را ترکیب کند.


بیایید دوباره مثال تولید داده های آموزشی از یک تابع که شامل lift است را بررسی کنیم:


اما PINN را با فیزیک شناخته شده ای که لیفت را شامل نمی شود ارائه دهید:


PINN می‌تواند تابعی را بیاموزد که با داده‌های آموزشی متناسب باشد (از تابع حقیقت زمین با لیفت)، اما همچنین سازگاری تا حد امکان با فیزیک شناخته شده را تضمین می‌کند. در جایی که داده‌ای داریم، از دست دادن داده‌ها تطابق با داده‌ها را تضمین می‌کند و از دست دادن فیزیک به عنوان یک اصطلاح منظم عمل می‌کند. در جاهایی که داده نداریم، اتلاف فیزیک امکان برون یابی را بر اساس گرادیان تابع فیزیک شناخته شده فراهم می کند.

آموزش یک پین بر روی داده ها (نقاط خاکستری) تولید شده از یک عملکرد متفاوت (با لیفت، قاب خاکستری) با آن که ما به PINN (سطح سبز) در مورد آن (قاب سیمی سرخابی) اطلاع داده ایم. تصویر توسط نویسنده


می‌توانیم ببینیم که PINN (سبز) یک مدل مفیدتر از حقیقت زمین (خاکستری) نسبت به بهترین تناسب برای تابع فیزیک به طور مستقیم (رنگ سرخابی) تولید می‌کند. PINN می‌تواند با نقاط داده‌ای که با لیفت تولید می‌شوند تناسب داشته باشد، اما همچنان می‌تواند این را با منظم‌سازی و برون‌یابی گرادیان بهترین تناسب تابع فیزیک شناخته‌شده پارامتری شده بدون بالابر ترکیب کند. ما همچنین می‌توانیم رویکرد یادگیری پارامترهای توابع فیزیک را از طریق آموزش PINN در نظر بگیریم و بسته به نیاز خود از مدل فیزیک پارامتری‌شده به طور مستقیم استفاده کنیم. این مبادله تفسیرپذیری/شفافیت بالاتری دارد زیرا استنتاج از طریق فیزیک شناخته شده در مقابل یک مدل وفاداری بالقوه پایین تر است، زیرا ممکن است فیزیک به طور دقیق با داده ها مطابقت نداشته باشد.

نتیجه

https://profile.hatena.ne.jp/ManaKeith2/

https://manakeith2.tumblr.com/

https://biashara.co.ke/author/manakeith2/

https://www.adaxes.com/questions/user/ManaKeith2

با خواندن این مقاله به درک چگونگی و چرایی استفاده از شبکه‌های عصبی مبتنی بر علم فیزیک و تفاوت‌های استفاده از روش‌های مختلف دست یافتیم. پین‌ها وسیله‌ای برای یادگیری مدل‌های قوی و دقیق از سیستم‌ها ارائه می‌کنند که در آن ما قادریم دانش حوزه موجود را در قالب معادلات شناخته شده‌ای که بر داده‌ها حاکم است، ارائه کنیم، حتی در شرایطی که معادلات دقیقاً با داده‌ها مطابقت ندارند. اطلاعات فیزیک اضافی امکان کشف متغیرها در معادلات شناخته شده را فراهم می کند و اجازه می دهد تا راه حل های سازگار با فیزیک را با داده های بسیار کمتری نسبت به یادگیری مبتنی بر داده های خالص به تنهایی یاد بگیریم.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد