MatlabTips
Photo
پاسخ به کویز
برای یافتن جواب سوال باید ابتدا با یک مفهوم بسیار مهم در برنامه نویسی آشنا بشیم.
دو نوع متغیر در پایتون وجود دارد: mutable و immutable متغیر های immutable دقیقا شبیه چیزی هستند که شما از یک متغیر انتظار دارید اگر مقدار آن ها را تغییر دهید تغییر می کنند. مثال ساده آن اعداد integer هستند اما mutable ها مثل لیست فرق دارند! البته آن ها هم تغییر می کنند با یک تفاوت بسیار مهم: متغیر های mutable به صورت درجا (in place) هم تغییر می کنند. این جمله یعنی چه؟
متغیر های mutable مثل لیست در واقع به نقطه ای از حافظه اشاره می کنند که مقدار آن ها قرار گرفته است. این دقیقا همان مفهوم پوینتر (اشاره گر) است. به این ترتیب اگر کدی به صورت زیر بنویسید
x=[1,2,3]
y=x
y.append(4)
print(x)
هرچند شما ظاهرا x را در y «کپی» کرده اید اما در واقع فقط یک نام دیگر برای x ساخته اید. این باعث می شود خروجی کد بالا [1,2,3,4] بشود! و دقیقا به همین خاطر است که برای «کپی کردن» توصیه می شود که از لایبرری copy استفاده کنید! یعنی:
Import copy
x=[1,2,3]
y=copy.deepcopy(x)
y.append(4)
print(x)
همان مقداری که انتظار دارید یعنی [1,2,3] را به شما می دهد!
حالا اگر به مساله برگردیم باید گفت آرگومان های پیش فرض را هرگز نباید به صورت immutable یعنی لیست انتخاب کرد. اتفاقی که در کد بالا می افتد این است که زمانی که تابع f صدا زده می شود عدد یک به لیست x اضافه می شود ولی بار دوم که باز تابع فراخوانی می شود. x پاک و از نو ساخته نمی شود!! بلکه مقداری که دارد که الان [1] است گرفته شده و باز هم یک به آن اضافه می شود. در نهایت خروجی به صورت [1,1] [1,1] در می آید!
⚡️نتایج: از ۶۲ نفری که کویز را دادند تنها نه نفر توانستند جواب درست را بدهند! این تقریبا نتیجه ای بود که انتظار می رفت و نگران نباشید 😄
برای یافتن جواب سوال باید ابتدا با یک مفهوم بسیار مهم در برنامه نویسی آشنا بشیم.
دو نوع متغیر در پایتون وجود دارد: mutable و immutable متغیر های immutable دقیقا شبیه چیزی هستند که شما از یک متغیر انتظار دارید اگر مقدار آن ها را تغییر دهید تغییر می کنند. مثال ساده آن اعداد integer هستند اما mutable ها مثل لیست فرق دارند! البته آن ها هم تغییر می کنند با یک تفاوت بسیار مهم: متغیر های mutable به صورت درجا (in place) هم تغییر می کنند. این جمله یعنی چه؟
متغیر های mutable مثل لیست در واقع به نقطه ای از حافظه اشاره می کنند که مقدار آن ها قرار گرفته است. این دقیقا همان مفهوم پوینتر (اشاره گر) است. به این ترتیب اگر کدی به صورت زیر بنویسید
x=[1,2,3]
y=x
y.append(4)
print(x)
هرچند شما ظاهرا x را در y «کپی» کرده اید اما در واقع فقط یک نام دیگر برای x ساخته اید. این باعث می شود خروجی کد بالا [1,2,3,4] بشود! و دقیقا به همین خاطر است که برای «کپی کردن» توصیه می شود که از لایبرری copy استفاده کنید! یعنی:
Import copy
x=[1,2,3]
y=copy.deepcopy(x)
y.append(4)
print(x)
همان مقداری که انتظار دارید یعنی [1,2,3] را به شما می دهد!
حالا اگر به مساله برگردیم باید گفت آرگومان های پیش فرض را هرگز نباید به صورت immutable یعنی لیست انتخاب کرد. اتفاقی که در کد بالا می افتد این است که زمانی که تابع f صدا زده می شود عدد یک به لیست x اضافه می شود ولی بار دوم که باز تابع فراخوانی می شود. x پاک و از نو ساخته نمی شود!! بلکه مقداری که دارد که الان [1] است گرفته شده و باز هم یک به آن اضافه می شود. در نهایت خروجی به صورت [1,1] [1,1] در می آید!
⚡️نتایج: از ۶۲ نفری که کویز را دادند تنها نه نفر توانستند جواب درست را بدهند! این تقریبا نتیجه ای بود که انتظار می رفت و نگران نباشید 😄
شبکه های پیچیده، همه گیری و کرونا
انتشار ویروس کرونا که تقریبا تمام کره زمین را فلج کرده است سوالات بسیاری در مورد منشا آن و نیز راه حل های پزشکی برای یافتن واکسن آن ایجاد کرده است. به شخصه هیچ سررشته ای در این موضوعات ندارم اما چیزی که بیش از همه چیز توجه من را جلب کرد نحوه «انتشار» این ویروس است. اینکه چگونه و با چه سرعتی چنین چیزی تمام جهان را درنوردید و همگان را درگیر خود کرد. به عبارتی این انتشار از یک «دینامیک» باید پیروی کند. واضح است که مطالعه انتشار ویروس چیزی نیست که امروز با آن مواجه شده باشیم.
در مبحث شبکه های پیچیده (complex networks) به مطالعه گراف ها (یا شبکه) هایی میپردازند که شامل هزاران، میلیون ها و حتی میلیارد ها نود هستند. مثال های آن شبکه های اجتماعی، اینترنت یا خود مغز هستند. نکته ای که در مورد همه این شبکه ها وجود دارد این است که تمام این شبکه ها به صورت طبیعی ساخته شده اند! مطالعه چنین شبکه هایی واقعیت های شگرفی را نمایان کرد. اینکه چنین شبکه هایی با اینکه در ظاهر بسیار از هم متفاوت هستند از قوانین مشابهی پیروی می کنند. اینجا نمی خواهم به جزییات آن بپردازم و فقط به چند مورد آن اکتفا می کنم. یکی از این ویژگی ها «جهان کوچک» بودن (small world) این شبکه هاست. به این معنا که میانگین فاصله بین هر دو نود دلخواه در این شبکه ها تقریبا مستقل از اندازه شبکه و معمولا بسیار عدد کوچکی است. ممکن است واژه six degress of separation را شنیده باشید. ایده این است که میانگین فاصله بین هر دو نفر دلخواه! مثلا شما و رییس جمهور گابون از طریق فقط دوستی بسیار کمتر از آن چیزی است که فکر میکنید! همین ویژگی باعث می شود ارتباطات در شبکه های طبیعی که دارای این خاصیت باشند بسیار کارا (efficient) باشد. اما این همراه با مشکلاتی هم هست: یکی از آن ها را این روز ها شاهد هستیم. مریضی های واگیر دار به سرعت می توانند پخش شوند اما این فقط مریضی ها نیستند. اطلاعات غلط و شایعات هم مانند همه گیری (pandemic) قابل انتقال با سرعت زیادی هستند.
اما مطالعه به تنهایی کافی نیست. مطالعه به شما شناخت می دهد تا بتوانید کنترل بیشتری روی این شبکه ها داشته باشید. به طور مثال در شبکه های پیچیده برخی از نود ها دارای اهمیت بسیار بیشتری نسبت به بقیه در انتقال هستند. یافتن چنین نود هایی به هیچ وجه واضح نیست (مثلا اینطور نیست که آن نود ها لزوما به تعداد زیادی نود دیگر وصل باشند) و نیازمند تحلیل های دقیق ریاضی و شبیه سازی است. اگر این نوشته انگیزه مطالعه را در شما بیشتر کرده است چند لینک را می توانم اینجا معرفی کنم که مسیر را هموار تر می کند
مقاله ای طولانی اما بسیار مهم و با جزییات
https://arxiv.org/pdf/1408.2701.pdf
یک شبیه سازی از خطر کرونا
https://kidzik.shinyapps.io/corona-simulator/
شبیه سازی دیگری توسط واشنگتن پست
https://www.washingtonpost.com/graphics/2020/world/corona-simulator/
یک کتابخانه پایتون برای مطالعه پاندمیک
https://github.com/GiulioRossetti/ndlib
تشخیص کرونا در عکس های اشعه ایکس با یادگیری عمیق و کراس
https://www.pyimagesearch.com/2020/03/16/detecting-covid-19-in-x-ray-images-with-keras-tensorflow-and-deep-learning/
انتشار ویروس کرونا که تقریبا تمام کره زمین را فلج کرده است سوالات بسیاری در مورد منشا آن و نیز راه حل های پزشکی برای یافتن واکسن آن ایجاد کرده است. به شخصه هیچ سررشته ای در این موضوعات ندارم اما چیزی که بیش از همه چیز توجه من را جلب کرد نحوه «انتشار» این ویروس است. اینکه چگونه و با چه سرعتی چنین چیزی تمام جهان را درنوردید و همگان را درگیر خود کرد. به عبارتی این انتشار از یک «دینامیک» باید پیروی کند. واضح است که مطالعه انتشار ویروس چیزی نیست که امروز با آن مواجه شده باشیم.
در مبحث شبکه های پیچیده (complex networks) به مطالعه گراف ها (یا شبکه) هایی میپردازند که شامل هزاران، میلیون ها و حتی میلیارد ها نود هستند. مثال های آن شبکه های اجتماعی، اینترنت یا خود مغز هستند. نکته ای که در مورد همه این شبکه ها وجود دارد این است که تمام این شبکه ها به صورت طبیعی ساخته شده اند! مطالعه چنین شبکه هایی واقعیت های شگرفی را نمایان کرد. اینکه چنین شبکه هایی با اینکه در ظاهر بسیار از هم متفاوت هستند از قوانین مشابهی پیروی می کنند. اینجا نمی خواهم به جزییات آن بپردازم و فقط به چند مورد آن اکتفا می کنم. یکی از این ویژگی ها «جهان کوچک» بودن (small world) این شبکه هاست. به این معنا که میانگین فاصله بین هر دو نود دلخواه در این شبکه ها تقریبا مستقل از اندازه شبکه و معمولا بسیار عدد کوچکی است. ممکن است واژه six degress of separation را شنیده باشید. ایده این است که میانگین فاصله بین هر دو نفر دلخواه! مثلا شما و رییس جمهور گابون از طریق فقط دوستی بسیار کمتر از آن چیزی است که فکر میکنید! همین ویژگی باعث می شود ارتباطات در شبکه های طبیعی که دارای این خاصیت باشند بسیار کارا (efficient) باشد. اما این همراه با مشکلاتی هم هست: یکی از آن ها را این روز ها شاهد هستیم. مریضی های واگیر دار به سرعت می توانند پخش شوند اما این فقط مریضی ها نیستند. اطلاعات غلط و شایعات هم مانند همه گیری (pandemic) قابل انتقال با سرعت زیادی هستند.
اما مطالعه به تنهایی کافی نیست. مطالعه به شما شناخت می دهد تا بتوانید کنترل بیشتری روی این شبکه ها داشته باشید. به طور مثال در شبکه های پیچیده برخی از نود ها دارای اهمیت بسیار بیشتری نسبت به بقیه در انتقال هستند. یافتن چنین نود هایی به هیچ وجه واضح نیست (مثلا اینطور نیست که آن نود ها لزوما به تعداد زیادی نود دیگر وصل باشند) و نیازمند تحلیل های دقیق ریاضی و شبیه سازی است. اگر این نوشته انگیزه مطالعه را در شما بیشتر کرده است چند لینک را می توانم اینجا معرفی کنم که مسیر را هموار تر می کند
مقاله ای طولانی اما بسیار مهم و با جزییات
https://arxiv.org/pdf/1408.2701.pdf
یک شبیه سازی از خطر کرونا
https://kidzik.shinyapps.io/corona-simulator/
شبیه سازی دیگری توسط واشنگتن پست
https://www.washingtonpost.com/graphics/2020/world/corona-simulator/
یک کتابخانه پایتون برای مطالعه پاندمیک
https://github.com/GiulioRossetti/ndlib
تشخیص کرونا در عکس های اشعه ایکس با یادگیری عمیق و کراس
https://www.pyimagesearch.com/2020/03/16/detecting-covid-19-in-x-ray-images-with-keras-tensorflow-and-deep-learning/
Washington Post
These simulations show how to flatten the coronavirus growth curve
The early trickle of new coronavirus infections has turned into a steady current. By creating simple simulations, we can see how to slow it down.
Forwarded from Charisma on Command
Find what you love and let it kill you. Let it drain you of your all. Let it cling onto your back and weigh you down into eventual nothingness. Let it kill you and let it devour your remains. For all things will kill you, both slowly and fastly, but it's much better to be killed by a lover.
- Charles Bukowski
آن چیزی که به آن عشق میورزی را پیدا کن و بگذار تو را بکشد! بگذار شیره وجودت را بکشد! بگذار پشتت سوار شود و تو را به پوچی نهایی رهنمون کند. بگذار تو را بکشد و باقی مانده ات را ببلعد! چرا که هر چیزی دیگری هم در نهایت تو را می کشد،هم آرام و هم سریع! اما چه بهتر که توسط عشقت کشته بشوی!
چارلز بوکوفسکی
- Charles Bukowski
آن چیزی که به آن عشق میورزی را پیدا کن و بگذار تو را بکشد! بگذار شیره وجودت را بکشد! بگذار پشتت سوار شود و تو را به پوچی نهایی رهنمون کند. بگذار تو را بکشد و باقی مانده ات را ببلعد! چرا که هر چیزی دیگری هم در نهایت تو را می کشد،هم آرام و هم سریع! اما چه بهتر که توسط عشقت کشته بشوی!
چارلز بوکوفسکی
معرفی ابزار: slack
با وجود قرنطینه و تمام مشکلاتی که وجود داره هنوز هم میشه تیم ها و دوستانتون رو کنار هم نگه دارید. اگه حرفهاتون بیشتر از یه چت ساده ست و نیاز دارید در مورد موضوعات مختلف هماهنگی کنید. فایل به اشتراک بذارید و وقت براشون تنظیم کنید تلگرام یا واتس آپ قطعا جوابگو نیستند! من قبلا خیلی از لینک هایی که میخواستم بخونم یا فایل هایی که نگاه کنم رو یا روی مرورگر بوکمارک میکردم یا توی ذخیره تلگرام قرار میدادم. مشکلات این روش خیلی زیاده اول اینکه چون دسته بندی وجود نداره پیدا کردن چیزی که میخواید غیر ممکن میشه و همچنین بعدا نمیرسید بهشون برگردید. از طرفی لینک ها رو باید پاک کنید حتی اگه خوب بودن.
نرم افزارهای دیگه ای هم هستن که درست شدن مانند google keep یا evernote اما به شخصه نتونستم استفاده خوبی ازشون بکنم. تا اینکه بالاخره با slack آشنا شدم. Slack یک نرم افزار مدیریت گروهیه که هم روی گوشی هم کامپیوتر نصب میشه. میتونید هر تعداد که بخواید کانال درست کنید و افراد رو بهش بگمارید. میشه گروه های مختلف ساخت و داخل هر گروه کانال های متفاوت قرار داد. مثلا هم تیمی ها. دوستان خانواده و بقیه. هر پیام رو میتونید براش reminder بذارید
علاوه بر اینها میتونید انواع و اقسام برنامه ها رو توش نصب کنید از گیت هاب گرفته تا گوگل درایو.
❗️خیلی مهم: بخاطر تحریم های وزارت خزانه داری آمریکا اسلک کاربران ایرانی رو تحریم کرده. حتما دقت کنید که قبل از ثبت نام وی پی ان استفاده کنید در غیر اینصورت احتمالا حتی بعدش هم وی پی ان بزنید نتونید ازش استفاده کنید
https://slack.com/
پ.ن: یکی از دوستان کانال جایگزین های داخلی رو هم پیشنهاد دادن. من فقط معرفی میکنم و نمیتونم به صورت مستقل تایید کنم
https://limoo.im/
https://balonet.net/
با وجود قرنطینه و تمام مشکلاتی که وجود داره هنوز هم میشه تیم ها و دوستانتون رو کنار هم نگه دارید. اگه حرفهاتون بیشتر از یه چت ساده ست و نیاز دارید در مورد موضوعات مختلف هماهنگی کنید. فایل به اشتراک بذارید و وقت براشون تنظیم کنید تلگرام یا واتس آپ قطعا جوابگو نیستند! من قبلا خیلی از لینک هایی که میخواستم بخونم یا فایل هایی که نگاه کنم رو یا روی مرورگر بوکمارک میکردم یا توی ذخیره تلگرام قرار میدادم. مشکلات این روش خیلی زیاده اول اینکه چون دسته بندی وجود نداره پیدا کردن چیزی که میخواید غیر ممکن میشه و همچنین بعدا نمیرسید بهشون برگردید. از طرفی لینک ها رو باید پاک کنید حتی اگه خوب بودن.
نرم افزارهای دیگه ای هم هستن که درست شدن مانند google keep یا evernote اما به شخصه نتونستم استفاده خوبی ازشون بکنم. تا اینکه بالاخره با slack آشنا شدم. Slack یک نرم افزار مدیریت گروهیه که هم روی گوشی هم کامپیوتر نصب میشه. میتونید هر تعداد که بخواید کانال درست کنید و افراد رو بهش بگمارید. میشه گروه های مختلف ساخت و داخل هر گروه کانال های متفاوت قرار داد. مثلا هم تیمی ها. دوستان خانواده و بقیه. هر پیام رو میتونید براش reminder بذارید
علاوه بر اینها میتونید انواع و اقسام برنامه ها رو توش نصب کنید از گیت هاب گرفته تا گوگل درایو.
❗️خیلی مهم: بخاطر تحریم های وزارت خزانه داری آمریکا اسلک کاربران ایرانی رو تحریم کرده. حتما دقت کنید که قبل از ثبت نام وی پی ان استفاده کنید در غیر اینصورت احتمالا حتی بعدش هم وی پی ان بزنید نتونید ازش استفاده کنید
https://slack.com/
پ.ن: یکی از دوستان کانال جایگزین های داخلی رو هم پیشنهاد دادن. من فقط معرفی میکنم و نمیتونم به صورت مستقل تایید کنم
https://limoo.im/
https://balonet.net/
Slack
AI work management and productivity tools
Slack is where work happens. Bring your people, projects, tools and AI together on the world’s most beloved work operating system.
This media is not supported in your browser
VIEW IN TELEGRAM
۵۰ آونگ دو تایی:مثال کلاسیک از آشوب. هر کدام از آونگ ها فقط یک پنجاه میلیونیم با هم در شرایط اولیه تفاوت دارند. ابتدا کاملا روی هم قرار دارند اما بعد از مدتی سرنوشت های بسیار متفاوتی پیدا می کنند!!
This media is not supported in your browser
VIEW IN TELEGRAM
مدل سازی اثر فاصله گیری اجتماعی(social distancing ) برای جلوگیری از انتشار ویروس کرونا با استفاده از متلب در سیمولینگ
بیشتر:
https://blogs.mathworks.com/simulink/2020/03/23/covid-19-simulating-exponential-spread-in-simulink/?s_eid=psm_bl&source=15308
بیشتر:
https://blogs.mathworks.com/simulink/2020/03/23/covid-19-simulating-exponential-spread-in-simulink/?s_eid=psm_bl&source=15308
کامل کردن چهره با استفاده از شبکه های عمیق. در این وظیفه یک تصویر ناقص مانند ستون سمت چپ به شبکه داده می شود و شبکه آن را کامل می کند. ستون دوم توسط شبکه کامل شده است. ستون سوم تصویر واقعی ست
GT: Ground Truth چهره اصلی
⭐️مقاله:
https://arxiv.org/abs/2003.13903
GT: Ground Truth چهره اصلی
⭐️مقاله:
https://arxiv.org/abs/2003.13903
🔵پایتورچ و تنسرفلو: دو فلسفه متفاوت در مهندسی نرم افزار🔵
بر طبق آخرین آمار کنفرانس های یادگیری ماشین پایتورچ محبوب ترین چارچوب یادگیری عمیق است و بر اساس بنچ مارک های مستقل سرعت آن بیشتر از تنسرفلو می دانند. پایتورچ تا سه سال پیش حتی وجود نداشت! اما ناگهان ظهور پیدا کرد و به طرز شگفت انگیزی رقیب بلامنازع خود یعنی تنسرفلو را از میدان به در کرد! تنسرفلویی که توسط بزرگترین غول نرم افزاری جهان یعنی گوگل سه سال حتی قبل از تولد پایتورچ منتشر شد و برای نسل جدید سخت افزارهای شرکت گوگل یعنی TPUها بهینه شد. کنفرانس برگزار شد. کتاب برای آن نوشته شد و خلاصه تمام تبلیغاتی که مثلا برای یک برند لوکس بنظرتان برسد برایش انجام دادند. اما چه چیزی باعث شد از پایتورچی که حتی اوایل مشخص نبود چه شرکتی پشت آن باشد عقب افتاد؟! دلایل زیادی می توان ذکر کرد اما شاید مهمترین آن ها موارد زیر باشد:
تنسرفلو برای مدت طولانی یکه تاز بود هرچند چهارچوب های دیگری مثل caffe هم وجود داشتند اما ساپورت تنسرفلو برای اجرا در پایتون آن را یکتا میکرد. تنسرفلو اما مسیری را در توسعه نرم افزاری خود پیش گرفت که بسیاری از کاربران آن را نا امید میکرد. یک ضرب ماتریسی ساده در تنسرفلو نیاز به فراخوانی توابعی داشت که «مساله» ی کاربر دیتاساینتیست نبود. تعریف گراف و بعد اجرای آن در سشن ها و غیره. این عدم شناخت از زمینه کاری کاربران اولین مشکل تنسرفلو بود. چرا که توسعه یادگیری ماشین بر اساس تنسرفلو را بسیار کند می کرد.
مشکل دوم تنسرفلو اضافه کردن ویژگی ها و توابع به صورت نامنظم و دیوانه وار بود طوری که ویژگی هایی در آن از چندیدن سال پیش وجود داشت که هنوز هم در پایتورچ وجود ندارد. اما نکته دقیقا همینجاست. سنگین کردن و به هم ریختن کل نرم افزار به قیمت اضافه کردن ویژگی هایی که حتی یک درصد از کاربران برایشان مهم نیست یک استراتژی غلط در نرم افزار است.
تغییرات در مدیریت نسخه بندی تنسرفلو هم به همان اندازه بی نظم بود. شما در نسخه های قبل از ۲ میتوانستید یک تابع را در چندین جای مختلف پیدا کنید. برخی از این بخش ها deprecated شده بودند اما سنگینی محیط های legacy برای استفاده از آن ها وجود آن ها را ضروری میکرد. ساختار بی نظمی که خود توسعه دهندگان تنسرفلو به آن اشاره میکنند و اساس طراحی مجدد APIهای سطح بالا به تنسرفلو ۲ شد
وضعیت دشوار استفاده از tensorflow منجر به ساخت کتابخانه هایی شد که این پیچیدگی را از کاربر نهایی مخفی میکنند که معروف ترین آن ها keras بود. با انتقال به tensorflow2 قرار شد که که این دو API متحد شوند اما در عمل استفاده از کراس بدون ارجاع به backend غیر قابل استفاده است این کار منجر به بهم ریختن لایه های انتزاع در مهندسی نرم افزار می شود (levels of abstraction) و کد را غیر قابل فهم و بعضا دیباگ کردن آن را حتی دشوار تر می کند. از طرفی این اتحاد خیالی بین این دو هم در عمل رخ نداد.
مشکل دیگر تنسرفلو این بود که استفاده از GPU که اساسی ترین پلتفرم اجرایی آن است بسیار دشوار تر و همواره همراه با خطا است (این را از تجربه استفاده از تسرفلو به مدت چهار سال با انواع و اقسام کارت های گرافیک می گویم). نصب دیفالت تنسرفلو، بر خلاف پایتورچ، بر روی cpu است!! اما در پایتورچ حتی نصب جی پی یو همچنان امکان استفاده از cpu را میدهد که منطقی تر بنظر میرسد.
ادامه
بر طبق آخرین آمار کنفرانس های یادگیری ماشین پایتورچ محبوب ترین چارچوب یادگیری عمیق است و بر اساس بنچ مارک های مستقل سرعت آن بیشتر از تنسرفلو می دانند. پایتورچ تا سه سال پیش حتی وجود نداشت! اما ناگهان ظهور پیدا کرد و به طرز شگفت انگیزی رقیب بلامنازع خود یعنی تنسرفلو را از میدان به در کرد! تنسرفلویی که توسط بزرگترین غول نرم افزاری جهان یعنی گوگل سه سال حتی قبل از تولد پایتورچ منتشر شد و برای نسل جدید سخت افزارهای شرکت گوگل یعنی TPUها بهینه شد. کنفرانس برگزار شد. کتاب برای آن نوشته شد و خلاصه تمام تبلیغاتی که مثلا برای یک برند لوکس بنظرتان برسد برایش انجام دادند. اما چه چیزی باعث شد از پایتورچی که حتی اوایل مشخص نبود چه شرکتی پشت آن باشد عقب افتاد؟! دلایل زیادی می توان ذکر کرد اما شاید مهمترین آن ها موارد زیر باشد:
تنسرفلو برای مدت طولانی یکه تاز بود هرچند چهارچوب های دیگری مثل caffe هم وجود داشتند اما ساپورت تنسرفلو برای اجرا در پایتون آن را یکتا میکرد. تنسرفلو اما مسیری را در توسعه نرم افزاری خود پیش گرفت که بسیاری از کاربران آن را نا امید میکرد. یک ضرب ماتریسی ساده در تنسرفلو نیاز به فراخوانی توابعی داشت که «مساله» ی کاربر دیتاساینتیست نبود. تعریف گراف و بعد اجرای آن در سشن ها و غیره. این عدم شناخت از زمینه کاری کاربران اولین مشکل تنسرفلو بود. چرا که توسعه یادگیری ماشین بر اساس تنسرفلو را بسیار کند می کرد.
مشکل دوم تنسرفلو اضافه کردن ویژگی ها و توابع به صورت نامنظم و دیوانه وار بود طوری که ویژگی هایی در آن از چندیدن سال پیش وجود داشت که هنوز هم در پایتورچ وجود ندارد. اما نکته دقیقا همینجاست. سنگین کردن و به هم ریختن کل نرم افزار به قیمت اضافه کردن ویژگی هایی که حتی یک درصد از کاربران برایشان مهم نیست یک استراتژی غلط در نرم افزار است.
تغییرات در مدیریت نسخه بندی تنسرفلو هم به همان اندازه بی نظم بود. شما در نسخه های قبل از ۲ میتوانستید یک تابع را در چندین جای مختلف پیدا کنید. برخی از این بخش ها deprecated شده بودند اما سنگینی محیط های legacy برای استفاده از آن ها وجود آن ها را ضروری میکرد. ساختار بی نظمی که خود توسعه دهندگان تنسرفلو به آن اشاره میکنند و اساس طراحی مجدد APIهای سطح بالا به تنسرفلو ۲ شد
وضعیت دشوار استفاده از tensorflow منجر به ساخت کتابخانه هایی شد که این پیچیدگی را از کاربر نهایی مخفی میکنند که معروف ترین آن ها keras بود. با انتقال به tensorflow2 قرار شد که که این دو API متحد شوند اما در عمل استفاده از کراس بدون ارجاع به backend غیر قابل استفاده است این کار منجر به بهم ریختن لایه های انتزاع در مهندسی نرم افزار می شود (levels of abstraction) و کد را غیر قابل فهم و بعضا دیباگ کردن آن را حتی دشوار تر می کند. از طرفی این اتحاد خیالی بین این دو هم در عمل رخ نداد.
مشکل دیگر تنسرفلو این بود که استفاده از GPU که اساسی ترین پلتفرم اجرایی آن است بسیار دشوار تر و همواره همراه با خطا است (این را از تجربه استفاده از تسرفلو به مدت چهار سال با انواع و اقسام کارت های گرافیک می گویم). نصب دیفالت تنسرفلو، بر خلاف پایتورچ، بر روی cpu است!! اما در پایتورچ حتی نصب جی پی یو همچنان امکان استفاده از cpu را میدهد که منطقی تر بنظر میرسد.
ادامه
ویرگول
پایتورچ و تنسرفلو: دو فلسفه متفاوت در مهندسی نرم افزار
بر طبق آخرین آمار کنفرانس های یادگیری ماشین پایتورچ محبوب ترین چارچوب یادگیری عمیق است و بر اساس بنچ مارک های مستقل سرعت آن بیشتر از تنسرفل…
Media is too big
VIEW IN TELEGRAM
استفان ولفرام فیزیکدان و دانشمند علوم کامپیوتر در مورد مفهوم «پیچیدگی» و ارتباط آن با «واقعیت» بحث بسیار جالبی میکند.
ولفرام نشان داده است با جستجو در فضای «برنامه های ممکن» (possible programs in computational world) برنامه هایی یافت می شوند که ساده هستند ولی پیچیدگی می آفرینند!!
ولفرام از این ترفند در یافتن الگوریتم های بهینه در نرم افزار تولیدی شرکتش یعنی متمتیکا استفاده کرده و اعتقاد دارد طبیعت به روش های مختلفی راه حل ها را می یابد و بر خلاف دیدگاه سنتی که ما فکر میکنیم برای ساختن چیزی پیچیده نیاز به برنامه ای پیچیده است (برهان نظم) طبیعت این قاعده را نقض می کند! اما علم این واقعیت را بسیار دیر کشف کرد!
ویدیو با زیرنویس انگلیسی
برای درک جزییات بیشتر این پست من را روی ویرگول میتوانید بخوانید
ولفرام نشان داده است با جستجو در فضای «برنامه های ممکن» (possible programs in computational world) برنامه هایی یافت می شوند که ساده هستند ولی پیچیدگی می آفرینند!!
ولفرام از این ترفند در یافتن الگوریتم های بهینه در نرم افزار تولیدی شرکتش یعنی متمتیکا استفاده کرده و اعتقاد دارد طبیعت به روش های مختلفی راه حل ها را می یابد و بر خلاف دیدگاه سنتی که ما فکر میکنیم برای ساختن چیزی پیچیده نیاز به برنامه ای پیچیده است (برهان نظم) طبیعت این قاعده را نقض می کند! اما علم این واقعیت را بسیار دیر کشف کرد!
ویدیو با زیرنویس انگلیسی
برای درک جزییات بیشتر این پست من را روی ویرگول میتوانید بخوانید
همانطور که قول داده بودم چت باتی که رویش کار کردم را اوپن سورس کردم. تمام کدها + وزن های مورد نیاز بدون آموزش را می توانید از این ریپو تهیه کنید.
در پاورپوینت زیر خلاصه ای از کار را برای مخاطب عام توضیح داده ام. از کد استفاده کنید و ارجاع یادتان نرود!
(بزودی یک مطلب مفصل تر انگلیسی از نحوه کار چت بات را به اشتراک میگذارم)
در پاورپوینت زیر خلاصه ای از کار را برای مخاطب عام توضیح داده ام. از کد استفاده کنید و ارجاع یادتان نرود!
(بزودی یک مطلب مفصل تر انگلیسی از نحوه کار چت بات را به اشتراک میگذارم)
🔵محاسبات ناپایدار: یک خطای مهندسی مهلک🔵
در تاریخ ۲۵ فوریه سال ۱۹۹۱ میلادی سیستم موشکی پاتریوت (patriot missile system) در عربستان دچار خطا شده و یک موشک بالستیک باعث کشته شدن ۲۸ سرباز آمریکایی شد. بررسی بعد از حادثه نکته ی شگفت انگیزی را آشکار کرد. ساعت داخلی پاتریوت بر اساس قدم های زمانی ۰.۱ ثانیه با یک عدد صحیح به عنوان آفست کار می کرد. این عدد سپس به یک عدد شناور (float) با ۲۴ بیت تبدیل می شد که برای محاسبه سرعت موشک و مکان حمله مورد استفاده قرار میگرفت. بیست ساعت آنلاین بودن سیستم باعث تجمیع خطا در یک «محاسبه ناپایدار» که ناشی از تبدیل عدد int به float بود به جایی رسید که سیستم پاتریوت عملا غیر قابل استفاده میشد چون تمام محاسبات عددی آن غلط بودند و همین باعث فاجعه شد!
اما «محاسبه ناپایدار» یعنی چه؟ ما هنگام محاسبات فرمولهای فیزیک و ریاضی فرض میگیرم که عددهایی که در داخل فرمول ها هستند حقیقی هستند و به همین خاطر ویژگی های خوبی مانند پیوستگی از آن ها انتظار داریم اما در عمل یعنی در کامپیوتر عدد حقیقی ای وجود ندارد بلکه با اعداد اعشاری floating point مواجه هستیم که دقت بی نهایت ندارند! برای اینکه مشکل را متوجه بشید به فرمول زیر دقت کنید
ادامه ..
https://vrgl.ir/xqPtr
در تاریخ ۲۵ فوریه سال ۱۹۹۱ میلادی سیستم موشکی پاتریوت (patriot missile system) در عربستان دچار خطا شده و یک موشک بالستیک باعث کشته شدن ۲۸ سرباز آمریکایی شد. بررسی بعد از حادثه نکته ی شگفت انگیزی را آشکار کرد. ساعت داخلی پاتریوت بر اساس قدم های زمانی ۰.۱ ثانیه با یک عدد صحیح به عنوان آفست کار می کرد. این عدد سپس به یک عدد شناور (float) با ۲۴ بیت تبدیل می شد که برای محاسبه سرعت موشک و مکان حمله مورد استفاده قرار میگرفت. بیست ساعت آنلاین بودن سیستم باعث تجمیع خطا در یک «محاسبه ناپایدار» که ناشی از تبدیل عدد int به float بود به جایی رسید که سیستم پاتریوت عملا غیر قابل استفاده میشد چون تمام محاسبات عددی آن غلط بودند و همین باعث فاجعه شد!
اما «محاسبه ناپایدار» یعنی چه؟ ما هنگام محاسبات فرمولهای فیزیک و ریاضی فرض میگیرم که عددهایی که در داخل فرمول ها هستند حقیقی هستند و به همین خاطر ویژگی های خوبی مانند پیوستگی از آن ها انتظار داریم اما در عمل یعنی در کامپیوتر عدد حقیقی ای وجود ندارد بلکه با اعداد اعشاری floating point مواجه هستیم که دقت بی نهایت ندارند! برای اینکه مشکل را متوجه بشید به فرمول زیر دقت کنید
ادامه ..
https://vrgl.ir/xqPtr
ویرگول
محاسبات ناپایدار: یک خطای مهندسی مهلک
سامانه موشکی پاتریوتدر تاریخ ۲۵ فوریه سال ۱۹۹۱ میلادی سیستم موشکی پاتریوت patriot missile system در عربستان دچار خطا شده و موشک بالستیک ب…
Forwarded from MatlabTips (Rohola Zandie)
🔵مزیت بستن درها🔵
مردی را می شناسم که با سه زن قرار ملاقات میگذارد. او عاشق هر سه نفرشان است و می تواند تصور کند که با هر یک از آن ها تشکیل خانواده بدهد. با این حال او جرات انتخاب بین هیچ کدام از آن ها را ندارد. صرفا به این خاطر که انتخاب یکی به معنای کنار گذاشتن دو تای دیگر برای همیشه است.
دانشجویی بین ادامه دادن رشته کامپیوتر یا ادبیات مردد است او هر دوی آن ها را دوست دارد به همین خاطر در کلاس های هر دو شرکت می کند و وقتش را بین هر دو تقسیم می کند.او احساس می کند اینطوری هر دو گزینه را خواهد داشت و اینطور برایش بهتر است.
مادری فرزندش را به کلاس شنا، پیانو، نقاشی و زبان می فرستند. حتی خود مادر هم می داند که امکان ندارد فرزندش در همه موفق شود اما فکر می کند شاید روزی به کارش آمد.
همه ما سعی میکنیم تا جایی که ممکن است تمام گزینه ها را باز باقی بگذاریم. اما متاسفانه معمولا هیچ کدام را به نتیجه نمی رسانیم و مقدار زیادی وقت و انرژی هدر می دهیم. به همین خاطر است که امروزه با این همه گزینه های زیادی که داریم معمولا از قدیمی ها عقب تر هستیم.
روانشناسان رفتار شناسی اقتصادی Dan Ariely و Jiwoong Shin با اختراع بازی کامپیوتری که این شرایط را تقیلد می کند این رفتار غیر منطقی انسان ها را مطالعه کردند[1]. بازی به این صورت است که در ابتدای بازی با سه در مواجه می شوید. که با کلیک کردن در را باز و وارد اتاقی می شوید. در اتاق می توانید با کلیک کردن داخل اتاق امتیاز بدست بیاورید یا با کلیک کردن روی درِ داخل اتاق به اتاق دیگری بروید. باید حواستان باشد که تعداد محدودی می توانید کلیک کنید(زمان و انرژی محدود در زندگی). و اگر درِ اتاقی را باز کرده باشید و به آن نروید به تدریج درش بسته می شود(از دست دادن یک گزینه به تدریج با بی توجهی). در مجموع سه اتاق بیشتر وجود ندارد و بازی طوری طراحی شده که یکی از اتاق ها به طور متوسط امتیاز بیشتری نصیب شما می کند.
بهترین استراتژی (از لحاظ ریاضی) این است که پس از بررسی چند گزینه محدود، در اتاقی بمانیم و مابقی کلیک ها را مصرف کنیم که به طور متوسط بیشترین امتیاز را می دهد. اما رفتار کاربران متفاوت بود: آن ها سراسیمه تا جایی که می توانستند درهای بیشتری را باز می کردند و زمانی که دری در حال بسته شدن بودن سعی می کردند با صرف یک کلیک آن را باز نگه دارند. این رفتار حتی زمانی که جریمه باز نگه داشتن یک در بیش از یک کلیک شد، تغییری نکرد. وقتی از آن ها پرسیده شد که چرا اینکار را می کنند آن ها پاسخ می دادند:" ممکن است در آینده به دردم بخورد" در صورتی که آن ها هرگز به آن آینده نمی رسیدند و قبل از آن که بتوانند از آن اتاق آن طور که باید استفاده کنند کلیک هایشان تمام می شد. روانشناسان اما نتیجه گرفتند دلیل اصلی باز نگه داشتنِ در این است که افراد نمی خواهند سختی و دردِ بسته شدن یک در را تحمل کنند.
ما همواره می خواهیم در آنِ واحد کارهای زیادی را بکنیم، از هیچ امکانی نمی گذریم و می خواهیم همه گزینه ها را با هم داشته باشیم. این امر به سادگی می تواند موفقیت ما را نابود کند. باید یاد بگیریم درها را ببندیم حتی اگر اینکار برایمان سخت باشد. کارهایی که در زندگی نباید بکنی را بنویس. به بیان دیگر تصمیم های حساب شده ای بگیر تا برخی چیز ها را کلا نادیده بگیری. یک بار خوب فکر کن و تصمیمت را بگیر که سراغ چه چیزهایی، حتی اگر فرصتش بود، نروی. بیشتر درها ارزش وارد شدن ندارند، حتی اگر به نظر برسد چرخاندن دسته در بسیار ساده است.
[1] Shin, J., & Ariely, D. (2004). Keeping doors open: The effect of unavailability on incentives to keep options viable. Management Science, 50(5), 575-586.
مردی را می شناسم که با سه زن قرار ملاقات میگذارد. او عاشق هر سه نفرشان است و می تواند تصور کند که با هر یک از آن ها تشکیل خانواده بدهد. با این حال او جرات انتخاب بین هیچ کدام از آن ها را ندارد. صرفا به این خاطر که انتخاب یکی به معنای کنار گذاشتن دو تای دیگر برای همیشه است.
دانشجویی بین ادامه دادن رشته کامپیوتر یا ادبیات مردد است او هر دوی آن ها را دوست دارد به همین خاطر در کلاس های هر دو شرکت می کند و وقتش را بین هر دو تقسیم می کند.او احساس می کند اینطوری هر دو گزینه را خواهد داشت و اینطور برایش بهتر است.
مادری فرزندش را به کلاس شنا، پیانو، نقاشی و زبان می فرستند. حتی خود مادر هم می داند که امکان ندارد فرزندش در همه موفق شود اما فکر می کند شاید روزی به کارش آمد.
همه ما سعی میکنیم تا جایی که ممکن است تمام گزینه ها را باز باقی بگذاریم. اما متاسفانه معمولا هیچ کدام را به نتیجه نمی رسانیم و مقدار زیادی وقت و انرژی هدر می دهیم. به همین خاطر است که امروزه با این همه گزینه های زیادی که داریم معمولا از قدیمی ها عقب تر هستیم.
روانشناسان رفتار شناسی اقتصادی Dan Ariely و Jiwoong Shin با اختراع بازی کامپیوتری که این شرایط را تقیلد می کند این رفتار غیر منطقی انسان ها را مطالعه کردند[1]. بازی به این صورت است که در ابتدای بازی با سه در مواجه می شوید. که با کلیک کردن در را باز و وارد اتاقی می شوید. در اتاق می توانید با کلیک کردن داخل اتاق امتیاز بدست بیاورید یا با کلیک کردن روی درِ داخل اتاق به اتاق دیگری بروید. باید حواستان باشد که تعداد محدودی می توانید کلیک کنید(زمان و انرژی محدود در زندگی). و اگر درِ اتاقی را باز کرده باشید و به آن نروید به تدریج درش بسته می شود(از دست دادن یک گزینه به تدریج با بی توجهی). در مجموع سه اتاق بیشتر وجود ندارد و بازی طوری طراحی شده که یکی از اتاق ها به طور متوسط امتیاز بیشتری نصیب شما می کند.
بهترین استراتژی (از لحاظ ریاضی) این است که پس از بررسی چند گزینه محدود، در اتاقی بمانیم و مابقی کلیک ها را مصرف کنیم که به طور متوسط بیشترین امتیاز را می دهد. اما رفتار کاربران متفاوت بود: آن ها سراسیمه تا جایی که می توانستند درهای بیشتری را باز می کردند و زمانی که دری در حال بسته شدن بودن سعی می کردند با صرف یک کلیک آن را باز نگه دارند. این رفتار حتی زمانی که جریمه باز نگه داشتن یک در بیش از یک کلیک شد، تغییری نکرد. وقتی از آن ها پرسیده شد که چرا اینکار را می کنند آن ها پاسخ می دادند:" ممکن است در آینده به دردم بخورد" در صورتی که آن ها هرگز به آن آینده نمی رسیدند و قبل از آن که بتوانند از آن اتاق آن طور که باید استفاده کنند کلیک هایشان تمام می شد. روانشناسان اما نتیجه گرفتند دلیل اصلی باز نگه داشتنِ در این است که افراد نمی خواهند سختی و دردِ بسته شدن یک در را تحمل کنند.
ما همواره می خواهیم در آنِ واحد کارهای زیادی را بکنیم، از هیچ امکانی نمی گذریم و می خواهیم همه گزینه ها را با هم داشته باشیم. این امر به سادگی می تواند موفقیت ما را نابود کند. باید یاد بگیریم درها را ببندیم حتی اگر اینکار برایمان سخت باشد. کارهایی که در زندگی نباید بکنی را بنویس. به بیان دیگر تصمیم های حساب شده ای بگیر تا برخی چیز ها را کلا نادیده بگیری. یک بار خوب فکر کن و تصمیمت را بگیر که سراغ چه چیزهایی، حتی اگر فرصتش بود، نروی. بیشتر درها ارزش وارد شدن ندارند، حتی اگر به نظر برسد چرخاندن دسته در بسیار ساده است.
[1] Shin, J., & Ariely, D. (2004). Keeping doors open: The effect of unavailability on incentives to keep options viable. Management Science, 50(5), 575-586.
🔵آیا ریاضیات اختراع است یا کشف؟🔵
پرده اول: راجر پنروز (ریاضیدان و فیزیکدان):
نظریات فیزیکی مبتنی بر ریاضیات به طرز شگفت انگیزی دقیق هستند. نظریه میدان کوانتومی آنقدر دقیق است که می توان تصور کرد با آن فاصله بین نیویورک تا لس آنجلس را با دقت کمتر از یک تار موی انسان اندازه گیری کرد! نظریه گرانشی نیوتون تنها یک در ده میلیون خطا دارد و نظریه گرانشی انیشتین صد میلیون برابر دقیق تر هم هست!!!
راجر پنروز اعتقاد دارد که ریاضیات ابتدا کاملا به دلایل عملی توسعه پیدا کرد اما بعدها یک بخش مستقل شد و افراد با این ذهنیت به سمت ریاضیات می روند چون می دانند درباره چیزی که درباره واقعیت است مطالعه می کنند. این بخشی از واقعیت است. این واقعیت گاهی واقعیت افلاطونی اطلاق شده است اما فلاسفه همیشه با آن راحت نبودند. همانطور که پدیدار شناسی واقعیت حالات ذهنی است ریاضیات هم واقعیت خاص خودش را دارد اما مستقل از ماست. از دیدگاه او این واقعیت ریاضیاتی چیزی جدا و مستقل از ماست و باید آن را کشف کرد.
از دیدگاه او ریاضیات نمی تواند اختراع باشد چون تاریخ علم نشان داده ریاضیات ساخته شده برای یک نظریه فراتر از مشاهدات اولیه رفته و بخش های جدید را به دقت های بیشتر و بیشتر در آینده کشف می کند
پرده دوم: استفان ولفرام (ریاضیدان فیزیکدان و دانشمند کامپیوتر):
از دیدگاه ولفرام ریاضیات یک اتفاق تاریخی بوده به این معنا که ریاضیات به طرز کاملا متفاوتی هم می توانست رخ بدهد و در عین حال جهان فیزیکی را توصیف کند. از دید او متدولوژی خاصی که در ریاضیات مبنی بر ایجاد قضیه و اثبات آن وجود دارد توسعه ریاضیات را محدود به نوع خاصی از ریاضی کرده است. اگر به همه سیستم های فرمال به صورت کلی نگاه کنیم متوجه می شویم واقعیات دیگری به جز ریاضی ای که امروز توسعه داده ایم وجود دارد. به عبارتی می توان تمام ریاضیات امروز را به چند اصول موضوعه کاهش داد و بعد پرسید آیا اینها تنها اصول موضوعه ممکن هستند؟ به عبارتی می توان یک جهان از ریاضیات ممکن را ایجاد کرد که با اصول موضوعه های متفاوتی کار میکنند. و می توان حتی آن ها شمرد! اما همه این ریاضیات ها به یک اندازه قدرتمند یا جالب نیستند. از دید ولفرام موفقیت علم تجربی با استفاده از ریاضیات شناخته شده هر قدر هم شگفت انگیز باشد فقط نتیجه این واقعیت است که ما تنها به بخش هایی از جهان نظر کرده ایم که برای آنها ابزارهای ریاضی خوبی توسعه داده ایم. این بدان معنی است که بخش های زیادی از واقعیت وجود دارند که برای آنها توضیح خوبی نداریم چون ریاضیات کنونی ما آن ریاضیات مناسبی نیست که باید اعمال شود.
ادامه دارد
پرده اول: راجر پنروز (ریاضیدان و فیزیکدان):
نظریات فیزیکی مبتنی بر ریاضیات به طرز شگفت انگیزی دقیق هستند. نظریه میدان کوانتومی آنقدر دقیق است که می توان تصور کرد با آن فاصله بین نیویورک تا لس آنجلس را با دقت کمتر از یک تار موی انسان اندازه گیری کرد! نظریه گرانشی نیوتون تنها یک در ده میلیون خطا دارد و نظریه گرانشی انیشتین صد میلیون برابر دقیق تر هم هست!!!
راجر پنروز اعتقاد دارد که ریاضیات ابتدا کاملا به دلایل عملی توسعه پیدا کرد اما بعدها یک بخش مستقل شد و افراد با این ذهنیت به سمت ریاضیات می روند چون می دانند درباره چیزی که درباره واقعیت است مطالعه می کنند. این بخشی از واقعیت است. این واقعیت گاهی واقعیت افلاطونی اطلاق شده است اما فلاسفه همیشه با آن راحت نبودند. همانطور که پدیدار شناسی واقعیت حالات ذهنی است ریاضیات هم واقعیت خاص خودش را دارد اما مستقل از ماست. از دیدگاه او این واقعیت ریاضیاتی چیزی جدا و مستقل از ماست و باید آن را کشف کرد.
از دیدگاه او ریاضیات نمی تواند اختراع باشد چون تاریخ علم نشان داده ریاضیات ساخته شده برای یک نظریه فراتر از مشاهدات اولیه رفته و بخش های جدید را به دقت های بیشتر و بیشتر در آینده کشف می کند
پرده دوم: استفان ولفرام (ریاضیدان فیزیکدان و دانشمند کامپیوتر):
از دیدگاه ولفرام ریاضیات یک اتفاق تاریخی بوده به این معنا که ریاضیات به طرز کاملا متفاوتی هم می توانست رخ بدهد و در عین حال جهان فیزیکی را توصیف کند. از دید او متدولوژی خاصی که در ریاضیات مبنی بر ایجاد قضیه و اثبات آن وجود دارد توسعه ریاضیات را محدود به نوع خاصی از ریاضی کرده است. اگر به همه سیستم های فرمال به صورت کلی نگاه کنیم متوجه می شویم واقعیات دیگری به جز ریاضی ای که امروز توسعه داده ایم وجود دارد. به عبارتی می توان تمام ریاضیات امروز را به چند اصول موضوعه کاهش داد و بعد پرسید آیا اینها تنها اصول موضوعه ممکن هستند؟ به عبارتی می توان یک جهان از ریاضیات ممکن را ایجاد کرد که با اصول موضوعه های متفاوتی کار میکنند. و می توان حتی آن ها شمرد! اما همه این ریاضیات ها به یک اندازه قدرتمند یا جالب نیستند. از دید ولفرام موفقیت علم تجربی با استفاده از ریاضیات شناخته شده هر قدر هم شگفت انگیز باشد فقط نتیجه این واقعیت است که ما تنها به بخش هایی از جهان نظر کرده ایم که برای آنها ابزارهای ریاضی خوبی توسعه داده ایم. این بدان معنی است که بخش های زیادی از واقعیت وجود دارند که برای آنها توضیح خوبی نداریم چون ریاضیات کنونی ما آن ریاضیات مناسبی نیست که باید اعمال شود.
ادامه دارد
YouTube
Roger Penrose - Is Mathematics Invented or Discovered?
Free access to Closer to Truth's library of 5,000 videos: https://bit.ly/376lkKN
Mathematics describes the real world of atoms and acorns, stars and stairs, with remarkable precision. So is mathematics invented by humans just like chisels and hammers and…
Mathematics describes the real world of atoms and acorns, stars and stairs, with remarkable precision. So is mathematics invented by humans just like chisels and hammers and…
🔵آیا ریاضیات اختراع است یا کشف؟🔵
پرده سوم: استیون واینبرگ (فیزیکدان نظری):
از دیدگاه واینبرگ ما از ریاضیات استفاده میکنیم تا مفاهیم نظری را توضیح بدهیم چون راه بهتری وجود ندارد. ریاضیات اما بسیار پیش از نظریات فیزیک به نقاطی می رسد که بعدها فیزیکدان ها به مفید بودن آن پی میبرند. این شیوه آنقدر عجیب است که مانند این است که نیل ارمسترانگ پا بر روی کره ماه بگذارد و آن جا رد پای ژول ورن (نویسنده داستانهای علمی تخیلی که داستانی درباره سفر به ماه دارد) را پیش از خودش آنجا ببینید! از دیدگاه واینبرگ ریاضیات در نهایت خودش را به ما نشان می دهد. مثلا قوانین تقارن تا مدتها از دیدگاه فیزیک پنهان بود هرچند ریاضیات آن توسعه یافته بود در نهایت در فیزیک ذرات بنیادی خود را نشان داد و خودش را به نحوی به ما تحمیل کرد. از طرفی او میگوید ما به طور طبیعی به سمت نظریاتی می رویم که از لحاظ ریاضیاتی زیبا هستند. از طرفی ما همیشه هم خوش شانس نیستیم نظریاتی پیدا میکنیم که از لحاظ ریاضیاتی زیبا نیستند اما کاربرد عملی در مهندسی و علوم دیگر دارند.
پرده چهارم: گریگوری چایتین (ریاضیدان):
از دیدگاه چایتین ریاضیات اختراع نیست چون شبیه به یک بازی می شود مانند شطرنج یا هر چیزی دیگری. اما از طرفی او اعتقاد دارد که دیدگاه سنتی به ریاضیات اشتباه است ریاضیدان ها باید با کامپیوتر ها دست به آزمایش بزنند و اگر چیزی را یافتند آن را قبول کنند. این نگاه به نحوی تجربه گرایی را به ریاضیات وارد می کند. به این ترتیب ریاضیات در مرز کشف و اختراع است گاهی کشف می شود و گاهی اختراع می شود.
پرده سوم: استیون واینبرگ (فیزیکدان نظری):
از دیدگاه واینبرگ ما از ریاضیات استفاده میکنیم تا مفاهیم نظری را توضیح بدهیم چون راه بهتری وجود ندارد. ریاضیات اما بسیار پیش از نظریات فیزیک به نقاطی می رسد که بعدها فیزیکدان ها به مفید بودن آن پی میبرند. این شیوه آنقدر عجیب است که مانند این است که نیل ارمسترانگ پا بر روی کره ماه بگذارد و آن جا رد پای ژول ورن (نویسنده داستانهای علمی تخیلی که داستانی درباره سفر به ماه دارد) را پیش از خودش آنجا ببینید! از دیدگاه واینبرگ ریاضیات در نهایت خودش را به ما نشان می دهد. مثلا قوانین تقارن تا مدتها از دیدگاه فیزیک پنهان بود هرچند ریاضیات آن توسعه یافته بود در نهایت در فیزیک ذرات بنیادی خود را نشان داد و خودش را به نحوی به ما تحمیل کرد. از طرفی او میگوید ما به طور طبیعی به سمت نظریاتی می رویم که از لحاظ ریاضیاتی زیبا هستند. از طرفی ما همیشه هم خوش شانس نیستیم نظریاتی پیدا میکنیم که از لحاظ ریاضیاتی زیبا نیستند اما کاربرد عملی در مهندسی و علوم دیگر دارند.
پرده چهارم: گریگوری چایتین (ریاضیدان):
از دیدگاه چایتین ریاضیات اختراع نیست چون شبیه به یک بازی می شود مانند شطرنج یا هر چیزی دیگری. اما از طرفی او اعتقاد دارد که دیدگاه سنتی به ریاضیات اشتباه است ریاضیدان ها باید با کامپیوتر ها دست به آزمایش بزنند و اگر چیزی را یافتند آن را قبول کنند. این نگاه به نحوی تجربه گرایی را به ریاضیات وارد می کند. به این ترتیب ریاضیات در مرز کشف و اختراع است گاهی کشف می شود و گاهی اختراع می شود.
YouTube
Steven Weinberg - Is Mathematics Invented or Discovered?
Mathematics describes the real world of atoms and acorns, stars and stairs, with remarkable precision. So is mathematics invented by humans just like chisels and hammers and pieces of music?
Click here to watch more interviews on mathematics and reality…
Click here to watch more interviews on mathematics and reality…
ترکیب تصاویر با Adversarial Latent Autoencoders
مقاله: https://arxiv.org/abs/2004.04467
کد:https://github.com/podgorskiy/ALAE
مقاله: https://arxiv.org/abs/2004.04467
کد:https://github.com/podgorskiy/ALAE