آندره کارپثی، مدیر هوش مصنوعی تسلا و یکی از پیشگامان محبوب کردن دیپ لرنینگ در یک پست یک رمز ارز کامل را برای یادگیری عموم در پایتون پیاده سازی کرده است.
https://karpathy.github.io/2021/06/21/blockchain/
https://karpathy.github.io/2021/06/21/blockchain/
karpathy.github.io
A from-scratch tour of Bitcoin in Python
Musings of a Computer Scientist.
🥎کوپایلت دستیار هوش مصنوعی برنامه نویسی🥏
هر کسی ارزش برنامه نویسی با یک نفر دیگر (pair programming) را می داند. وقتی شخصی کنار دست شما باشد حتی اگر برنامه نویسی اش بهتر نباشد میتواند بسیاری از خطاها را سریع تر تشخیص بدهد یا قسمت هایی از کد را با همفکری جلو ببرید.
گیتهاب با همکاری OpenAI از نسخه ی هوش مصنوعی همکار کد زن به اسم کوپایلت copilot رونمایی کرده است. کوپایلت می تواند با استفاده از کامنتها و مثال ها کد بنویسید و بسیاری از بخش های تکراری کار کد زنی (مثلا دانلود کردن تعدادی فایل از یک لیست از لینک ها ) را اتوماتیک کند. به همین خاطر کوپایلت بسیار فراتر از اوتوکامپلیت های معمول جلو می رود و عملا حتی یک تابع کامل را بر اساس اسم تابع برای شما می نویسد. ارزیابی ها نشان می دهد کوپایلت در ۴۳ درصد موارد بخش های کد را به طور درست و کامل می نویسد و این عدد هر روز بهتر هم می شود. همه کدهایی که کوپایلت می نویسد قطعا بدون خطا نیست بنابراین نیاز به یک مرحله از تست و بازبینی هم دارد ولی برای گرفتن ایده بسیار عالی است.
کوپایلت بخصوص وقتی بسیار خوب است که شما یک زبان که با آن آشنایی ندارید و تازه در حال یادگیری آن هستید را استفاده می کند. کوپایلت بهترین و پر استفاده ترین پترن های موجود را به شما نشان می دهد و ازین لحاظ منحنی یادگیری را صاف تر می کند. دیگر نیازی به ماه ها و سالها تجربه برای دریافتن بهترین روشهای نوشتن کد در هر زبانی نیست.
هر کسی ارزش برنامه نویسی با یک نفر دیگر (pair programming) را می داند. وقتی شخصی کنار دست شما باشد حتی اگر برنامه نویسی اش بهتر نباشد میتواند بسیاری از خطاها را سریع تر تشخیص بدهد یا قسمت هایی از کد را با همفکری جلو ببرید.
گیتهاب با همکاری OpenAI از نسخه ی هوش مصنوعی همکار کد زن به اسم کوپایلت copilot رونمایی کرده است. کوپایلت می تواند با استفاده از کامنتها و مثال ها کد بنویسید و بسیاری از بخش های تکراری کار کد زنی (مثلا دانلود کردن تعدادی فایل از یک لیست از لینک ها ) را اتوماتیک کند. به همین خاطر کوپایلت بسیار فراتر از اوتوکامپلیت های معمول جلو می رود و عملا حتی یک تابع کامل را بر اساس اسم تابع برای شما می نویسد. ارزیابی ها نشان می دهد کوپایلت در ۴۳ درصد موارد بخش های کد را به طور درست و کامل می نویسد و این عدد هر روز بهتر هم می شود. همه کدهایی که کوپایلت می نویسد قطعا بدون خطا نیست بنابراین نیاز به یک مرحله از تست و بازبینی هم دارد ولی برای گرفتن ایده بسیار عالی است.
کوپایلت بخصوص وقتی بسیار خوب است که شما یک زبان که با آن آشنایی ندارید و تازه در حال یادگیری آن هستید را استفاده می کند. کوپایلت بهترین و پر استفاده ترین پترن های موجود را به شما نشان می دهد و ازین لحاظ منحنی یادگیری را صاف تر می کند. دیگر نیازی به ماه ها و سالها تجربه برای دریافتن بهترین روشهای نوشتن کد در هر زبانی نیست.
GitHub
GitHub Copilot
AI that builds with you
تصویر سازی ادبی!!
آیا میتوان یک قطعه شعر را تصویر کرد؟ قبلا در مورد مدل CLIP صحبت کرده بودیم. مدلی که قادر به ساختن تصاویر از متن است. در طول چند ماه اخیر این مدل حتی بهتر هم شده است. امروزه هنرمندان زیادی ازین مدل برای ساختن کارهای خلاقانه استفاده می کنند. از آنجایی که به شخصه علاقه زیادی به این رشته تازه متولد شده دارم کانال جداگانه ای به اسم «هنر ماشینی» (Machine Art) ساخته ام که در آن تنها تصاویر ساخته شده توسط هوش مصنوعی بر اساس متن های ادبی یا شعر ها را نشان می دهم و آرشیو میکنم (با ذکر منبع و در آینده نزدیک هم میسازم). می توانید این کانال را دنبال کنید.
در زیر تنها یک نمونه از یک شعر که توسط جک کراوک رمان نویس و شاعر آمریکایی فرانسوی تبار سروده شده و توسط مدل CLIP به تصویر تبدیل شده است را نمایش می دهم. (شاید در آینده بتوان برای شعر های فارسی هم چنین کاری کرد)
https://t.iss.one/machines_art
آیا میتوان یک قطعه شعر را تصویر کرد؟ قبلا در مورد مدل CLIP صحبت کرده بودیم. مدلی که قادر به ساختن تصاویر از متن است. در طول چند ماه اخیر این مدل حتی بهتر هم شده است. امروزه هنرمندان زیادی ازین مدل برای ساختن کارهای خلاقانه استفاده می کنند. از آنجایی که به شخصه علاقه زیادی به این رشته تازه متولد شده دارم کانال جداگانه ای به اسم «هنر ماشینی» (Machine Art) ساخته ام که در آن تنها تصاویر ساخته شده توسط هوش مصنوعی بر اساس متن های ادبی یا شعر ها را نشان می دهم و آرشیو میکنم (با ذکر منبع و در آینده نزدیک هم میسازم). می توانید این کانال را دنبال کنید.
در زیر تنها یک نمونه از یک شعر که توسط جک کراوک رمان نویس و شاعر آمریکایی فرانسوی تبار سروده شده و توسط مدل CLIP به تصویر تبدیل شده است را نمایش می دهم. (شاید در آینده بتوان برای شعر های فارسی هم چنین کاری کرد)
https://t.iss.one/machines_art
Forwarded from Machine Art
Night — & when the great rains of the
night boom & thunder
in the South, when
the woods are blackened, made wet,
mudded, shrouded, impossibled —
—Jack Kerouac
night boom & thunder
in the South, when
the woods are blackened, made wet,
mudded, shrouded, impossibled —
—Jack Kerouac
دیروز بالاخره فرصتی بدست آوردم تا دست به آزمایش با تصویر سازی شعر فارسی با استفاده از شبکه ی عصبی CLIP و VQGAN بزنم. از آنجایی که مدل های زبانی مورد استفاده من برای متن های انگلیسی آموزش داده شده بودند از بهترین ترجمه انگلیسی خیام یعنی ترجمه فیتزجرالد استفاده کردم (خیام را انتخاب کردم چون شاعر محبوبم است). یکی از ویژگی های این روش این است که صرفا به کلمات توجه نمیکند بلکه ساختار معنایی و نحوی آنها را هم در نظر میگیرد.
نتایج به تابلوهای نقاشی ای شباهت دارند که المان های اصلی شعر را بوضوح می توان در آنها دید. تا جایی که میدانم چنین کاری تاکنون برای فارسی انجام نشده است بنابراین میتواند قدم جالبی باشد که ایده های جدیدتری هم به ذهن می آورد.
برای دیدن تصویر سازی بقیه شعر ها می توانید به کانال «هنر ماشین» که برای همین کار درست کرده ام مراجعه کنید.
سورس کدها را هم بزودی همینجا میگذارم. برای اجرا کردنشان نیاز به یک کارت گرافیک حداقل ۱۲ گیگابایتی دارید
نتایج به تابلوهای نقاشی ای شباهت دارند که المان های اصلی شعر را بوضوح می توان در آنها دید. تا جایی که میدانم چنین کاری تاکنون برای فارسی انجام نشده است بنابراین میتواند قدم جالبی باشد که ایده های جدیدتری هم به ذهن می آورد.
برای دیدن تصویر سازی بقیه شعر ها می توانید به کانال «هنر ماشین» که برای همین کار درست کرده ام مراجعه کنید.
سورس کدها را هم بزودی همینجا میگذارم. برای اجرا کردنشان نیاز به یک کارت گرافیک حداقل ۱۲ گیگابایتی دارید
با پیشنهاد برخی از دوستان صفحه اینستاگرامی برای «هنر ماشین» ساختم تا تعداد بیشتری خروجی ها رو ببینند و الهام بخش کارهای بهتر آینده هم باشد. لطفا به دوستانتان هم معرفی کنید.
https://www.instagram.com/machines_art_/
https://www.instagram.com/machines_art_/
دیدگاه جدیدی به نرم افزار
اگر نگاهی به مواد درسی رشته کامپیوتر (مهندسی و علوم کامپیوتر) تقریبا هر جای دنیا بیندازیم متوجه می شویم نحوه آموزش علم کامپیوتر اینگونه است که آنرا شاخه ای از ریاضیات و منطق می شناسند. درسهای ساختمان گسسته و الگوریتم و مدار منطقی و زبان ماشینها، برنامه های کامپیوتری و اجزای آن را تابع های ریاضی ای معرفی میکنند که از جهات مختلف مورد مطالعه قرار می گیرند. مثلا برنامه چند قدم برای هر ورودی زمان نیاز دارد. آیا برنامه بر روی هر ورودی ممکنی متوقف می شود یا خیر. این روش البته بسیار موفق عمل کرده است و دلایل تاریخی خوبی برای چنین رویکردی به برنامه نویسی وجود دارد. آلن تورینگ و آلونزو چرچ ریاضیدان و منطقدان بودند و دیدگاه آنها نسبت به کامپیوتر هم شاخه ای از منطق بود. کامپیوترها در ابتدا صرفا ساخت های صوری ای بودند که به صورت انتزاعی مورد مطالعه قرار میگرفتند. دیدگاه ساختمان صوری به برنامه نویسی بسیار موفق و پر بار است اما بدون اشکال هم نیست. این بخصوص زمانی آشکار می شود که اندازه برنامه ها بزرگ می شود یا برنامه ها از ساختارهای تماما متعین (deterministic) فاصله می گیرند. مواردی که تقریبا تمام حالت های مفید برنامه نویسی را پوشش می دهد.
اولین مورد اندازه برنامه هاست. وقتی اندازه برنامه خیلی بزرگ می شود ویژگی های جدیدی به میدان می آیند. اولین نکته این است که برنامه های بزرگ را تقریبا نمی توان با روش های formal verification مورد بررسی قرار داد. یعنی نمی توان از صحت آنها به صورت کامل مانند یک سیستم صوری کوچک مطمئن شد. کاری که می توان کرد این است که برای برنامه تست نوشته می شود اما این تست ها هرگز نمی توانند تمام حالت های ممکن را پوشش دهند. بنابراین باگ بخشی از برنامه است! هرگز نمی توان یک برنامه بزرگ (مثلا در اندازه مایکروسافت ورد یا لینوکس) را بدون هیچ باگی داشت. از طرفی برنامه یک ساخت صوری تمام شده نیست بلکه نیاز به رسیدگی (maintenance) دارد. کسی یک سیستم صوری مانند منطق درجه یک را رسیدگی نمیکند چون سیستم تمام شده و سازگاری (consistency) و تمامیت (completeness) آن اثبات شده است. منطقه درجه یک نمونه کامل از یک ساخت کامل افلاطونی ست! دنیای واقعی اما به ندرت چنین ساختارهایی دارد. هیچ نرم افزاری وجود ندارد که نیاز به رسیدگی نداشته باشد چون همه می دانند نرم افزار دقیقا مانند یک موجود زنده است. یک موجود زنده همواره سلولهای کهنه را دفع کرده و سلول های جدید میسازد. مغز یک موجود زنده همواره در حال اضافه کردن ارتباطات جدید است. به همین دلیل نرم افزاری که رها شده باشد حتی اگر بهترین نرم افزار باشد مانند یک جسد است! چنین دیدگاهی به نرم افزار با روش سنتی تصویر کردن نرم افزار به عنوان یک سیستم صوری که درستی آن قابل اثبات است فاصله زیادی دارد.
ادامه دارد...
اگر نگاهی به مواد درسی رشته کامپیوتر (مهندسی و علوم کامپیوتر) تقریبا هر جای دنیا بیندازیم متوجه می شویم نحوه آموزش علم کامپیوتر اینگونه است که آنرا شاخه ای از ریاضیات و منطق می شناسند. درسهای ساختمان گسسته و الگوریتم و مدار منطقی و زبان ماشینها، برنامه های کامپیوتری و اجزای آن را تابع های ریاضی ای معرفی میکنند که از جهات مختلف مورد مطالعه قرار می گیرند. مثلا برنامه چند قدم برای هر ورودی زمان نیاز دارد. آیا برنامه بر روی هر ورودی ممکنی متوقف می شود یا خیر. این روش البته بسیار موفق عمل کرده است و دلایل تاریخی خوبی برای چنین رویکردی به برنامه نویسی وجود دارد. آلن تورینگ و آلونزو چرچ ریاضیدان و منطقدان بودند و دیدگاه آنها نسبت به کامپیوتر هم شاخه ای از منطق بود. کامپیوترها در ابتدا صرفا ساخت های صوری ای بودند که به صورت انتزاعی مورد مطالعه قرار میگرفتند. دیدگاه ساختمان صوری به برنامه نویسی بسیار موفق و پر بار است اما بدون اشکال هم نیست. این بخصوص زمانی آشکار می شود که اندازه برنامه ها بزرگ می شود یا برنامه ها از ساختارهای تماما متعین (deterministic) فاصله می گیرند. مواردی که تقریبا تمام حالت های مفید برنامه نویسی را پوشش می دهد.
اولین مورد اندازه برنامه هاست. وقتی اندازه برنامه خیلی بزرگ می شود ویژگی های جدیدی به میدان می آیند. اولین نکته این است که برنامه های بزرگ را تقریبا نمی توان با روش های formal verification مورد بررسی قرار داد. یعنی نمی توان از صحت آنها به صورت کامل مانند یک سیستم صوری کوچک مطمئن شد. کاری که می توان کرد این است که برای برنامه تست نوشته می شود اما این تست ها هرگز نمی توانند تمام حالت های ممکن را پوشش دهند. بنابراین باگ بخشی از برنامه است! هرگز نمی توان یک برنامه بزرگ (مثلا در اندازه مایکروسافت ورد یا لینوکس) را بدون هیچ باگی داشت. از طرفی برنامه یک ساخت صوری تمام شده نیست بلکه نیاز به رسیدگی (maintenance) دارد. کسی یک سیستم صوری مانند منطق درجه یک را رسیدگی نمیکند چون سیستم تمام شده و سازگاری (consistency) و تمامیت (completeness) آن اثبات شده است. منطقه درجه یک نمونه کامل از یک ساخت کامل افلاطونی ست! دنیای واقعی اما به ندرت چنین ساختارهایی دارد. هیچ نرم افزاری وجود ندارد که نیاز به رسیدگی نداشته باشد چون همه می دانند نرم افزار دقیقا مانند یک موجود زنده است. یک موجود زنده همواره سلولهای کهنه را دفع کرده و سلول های جدید میسازد. مغز یک موجود زنده همواره در حال اضافه کردن ارتباطات جدید است. به همین دلیل نرم افزاری که رها شده باشد حتی اگر بهترین نرم افزار باشد مانند یک جسد است! چنین دیدگاهی به نرم افزار با روش سنتی تصویر کردن نرم افزار به عنوان یک سیستم صوری که درستی آن قابل اثبات است فاصله زیادی دارد.
ادامه دارد...
🔵پردازش پیش بینی کننده ۱ (predictive processing)🔵
پارسال وقتی پسر خالم کلاس اول بود یه بار امد خونه گفت دوستم گفته اگه قبل از آب خوردن بگی"یا حسین مظلوم" آب شیرین میشه! باباش برای روشنگری به شیوه ای پراگماتیک(!) بهش گفت برو دو تا لیوان آب بیار. رفت آورد. گفت حالا یکیشو بخور. بعد ازش پرسید چه مزه ای بود؟ گفت:هیچی. گفت حالا بگو "یا حسین مظلوم" اون یکی رو بخور. همین کارو کرد. ازش پرسید: حالا این یکی چه مزه ای میداد؟ با یه قیافیه ی خیلی شیطون و بامزه گفت: شیرین بود!!
دو پژوهشگر به نام های Remez و Rubin در سال ۱۹۸۴ [1] دست به آزمایش جالبی زدند. آنها صوت های کوتاهی را گرفته و نسخه ی موج سینوسی آن را درست کردند. این نسخه تقریبا تمام ویژگی های صوت اولیه را از دست داده بود و هنگامی که به آن گوش دهید چیزی شبیه به صدای موجودات فضایی در فیلم های علمی تخیلی می شنوید. بخش جالب ماجرا اما این است که اگر اول صدای اصلی را بشنوید و بعد صدای سینوسی را می توانید آن را بفهمید. این اثر آنقدر قوی است که عملا دیگر امکان ندارد که آن صدای اصلی را در صدای سینوسی نشنوید. صدایی که در ابتدا با نویز فرقی نداشت! (در زیر یک مثال آورده ام مثال های بیشتر اینجا)
این مورد البته فقط به صدا محدود نمی شود. آزمایش ها نشان داده است رنگ شراب در نحوه ی ادراک مزه ی آن بسیار موثر است. آنقدر این اثر قوی است که با رنگ کردن مصنوعی شراب سفید حتی می توان متخصصان شراب را هم گول زد طوری که فکر کنند شرابی که در اصل سفید است قرمز بدانند [2]. یا آزمایش های دیگری که نشان داده خوردن صدف زمانی که در پس زمینه صدای دریا پخش می شود مزه ی بهتری دارد!
این پدیده ها ویژگی مهمی در مورد مغز ما را نشان می دهند که برای دهه ها مورد بحث فلاسفه، عصب شناسان و دانشمندان علوم شناخت و حتی هوش مصنوعی بوده است: مغز ما از چارچوبی به نام پردازش پیش بینی کننده ( predictive processing) استفاده می کند. مغز ما صرفا داده های حسی دنیای بیرون را بدون دخل و تصرف درک نمی کند بلکه در ادراک ما بر اساس دانش پیشینی (prior knowledge) تغییرات ساختاری ایجاد می کند.
به عبارتی دیگر دو فرآیند در مغز ما همواره در حال کار کردن هستند. جریان عصبی از پایین به بالا (از پایانه های عصبی و حسگرهای ما) و جریان عصبی بالا به پایین که مدلهای تولیدی عصبی (generative models) هستند و در حال پیش بینی جریان عصبی ای هستند که هنوز حتی به مراحل بالاتر پردازشی مغز نرسیده اند. جزییات زیادی در این مدل وجود دارد که به تدریج به آن ها می پردازم.
ایده ی پردازش پیش بینی کننده (pp) اساس بسیاری از مدل هایی است که برای فشرده سازی داده ها (data compression) استفاده می شود. در ماشین های بولتزمن (boltzmann machine) و ماشین های هلمهولتز (helmholtz machines) از همین ایده برای پیش بینی ورودی ها استفاده می شود.
[1] Remez, R. E., & Rubin, P. E. (1984). On the perception of intonation from sinusoidal sentences. Perception & Psychophysics, 35, 429–440.
[2] Shankar, M. U., Levitan, C., & Spence, C. (2010). Grape expectations: The role of cognitive influences in color–flavor interactions. Consciousness & Cognition, 19, 380–390.
پارسال وقتی پسر خالم کلاس اول بود یه بار امد خونه گفت دوستم گفته اگه قبل از آب خوردن بگی"یا حسین مظلوم" آب شیرین میشه! باباش برای روشنگری به شیوه ای پراگماتیک(!) بهش گفت برو دو تا لیوان آب بیار. رفت آورد. گفت حالا یکیشو بخور. بعد ازش پرسید چه مزه ای بود؟ گفت:هیچی. گفت حالا بگو "یا حسین مظلوم" اون یکی رو بخور. همین کارو کرد. ازش پرسید: حالا این یکی چه مزه ای میداد؟ با یه قیافیه ی خیلی شیطون و بامزه گفت: شیرین بود!!
دو پژوهشگر به نام های Remez و Rubin در سال ۱۹۸۴ [1] دست به آزمایش جالبی زدند. آنها صوت های کوتاهی را گرفته و نسخه ی موج سینوسی آن را درست کردند. این نسخه تقریبا تمام ویژگی های صوت اولیه را از دست داده بود و هنگامی که به آن گوش دهید چیزی شبیه به صدای موجودات فضایی در فیلم های علمی تخیلی می شنوید. بخش جالب ماجرا اما این است که اگر اول صدای اصلی را بشنوید و بعد صدای سینوسی را می توانید آن را بفهمید. این اثر آنقدر قوی است که عملا دیگر امکان ندارد که آن صدای اصلی را در صدای سینوسی نشنوید. صدایی که در ابتدا با نویز فرقی نداشت! (در زیر یک مثال آورده ام مثال های بیشتر اینجا)
این مورد البته فقط به صدا محدود نمی شود. آزمایش ها نشان داده است رنگ شراب در نحوه ی ادراک مزه ی آن بسیار موثر است. آنقدر این اثر قوی است که با رنگ کردن مصنوعی شراب سفید حتی می توان متخصصان شراب را هم گول زد طوری که فکر کنند شرابی که در اصل سفید است قرمز بدانند [2]. یا آزمایش های دیگری که نشان داده خوردن صدف زمانی که در پس زمینه صدای دریا پخش می شود مزه ی بهتری دارد!
این پدیده ها ویژگی مهمی در مورد مغز ما را نشان می دهند که برای دهه ها مورد بحث فلاسفه، عصب شناسان و دانشمندان علوم شناخت و حتی هوش مصنوعی بوده است: مغز ما از چارچوبی به نام پردازش پیش بینی کننده ( predictive processing) استفاده می کند. مغز ما صرفا داده های حسی دنیای بیرون را بدون دخل و تصرف درک نمی کند بلکه در ادراک ما بر اساس دانش پیشینی (prior knowledge) تغییرات ساختاری ایجاد می کند.
به عبارتی دیگر دو فرآیند در مغز ما همواره در حال کار کردن هستند. جریان عصبی از پایین به بالا (از پایانه های عصبی و حسگرهای ما) و جریان عصبی بالا به پایین که مدلهای تولیدی عصبی (generative models) هستند و در حال پیش بینی جریان عصبی ای هستند که هنوز حتی به مراحل بالاتر پردازشی مغز نرسیده اند. جزییات زیادی در این مدل وجود دارد که به تدریج به آن ها می پردازم.
ایده ی پردازش پیش بینی کننده (pp) اساس بسیاری از مدل هایی است که برای فشرده سازی داده ها (data compression) استفاده می شود. در ماشین های بولتزمن (boltzmann machine) و ماشین های هلمهولتز (helmholtz machines) از همین ایده برای پیش بینی ورودی ها استفاده می شود.
[1] Remez, R. E., & Rubin, P. E. (1984). On the perception of intonation from sinusoidal sentences. Perception & Psychophysics, 35, 429–440.
[2] Shankar, M. U., Levitan, C., & Spence, C. (2010). Grape expectations: The role of cognitive influences in color–flavor interactions. Consciousness & Cognition, 19, 380–390.
sign_wave.wav
80.4 KB
صدای سینوسی (اول به این گوش بدهید بعد به صدای واضح توجه کنید و دوباره به این یکی گوش دهید)
نمودار اندازه ی مغز در برابر وزن بدن
همانطور که میبینید انسان به صورت مشخصی یک outlier است با این حال فاصله ما از بقیه ی موجودات زنده زیاد نیست. چه چیزی باعث شده است که با اینکه چنین تفاوتی در سایز مغز چندان زیاد نباشد اما تفاوت ما با بقیه موجودات به حدی زیاد باشد که بتوان از فضا تنها اثر انسان را بر چهره زمین دید؟ آیا پیچیدگی سیستم های زیستی دارای مرز خاصی است که ما از آن عبور کرده ایم و آیا مرز های دیگری هم وجود دارند؟
همانطور که میبینید انسان به صورت مشخصی یک outlier است با این حال فاصله ما از بقیه ی موجودات زنده زیاد نیست. چه چیزی باعث شده است که با اینکه چنین تفاوتی در سایز مغز چندان زیاد نباشد اما تفاوت ما با بقیه موجودات به حدی زیاد باشد که بتوان از فضا تنها اثر انسان را بر چهره زمین دید؟ آیا پیچیدگی سیستم های زیستی دارای مرز خاصی است که ما از آن عبور کرده ایم و آیا مرز های دیگری هم وجود دارند؟
🔵 پردازش پیش بینی کننده، ماشین بولتزمن و ماشین هلمهولتز 🔵
پردازش پیش بینی کننده (predictive processing) بدون شک یکی از بزرگترین کشفیات علمی در حوزه ی دانش مغز و علوم شناختی در دو دهه اخیر بوده است. ایده ی پردازش پیش بینی کننده طیف وسیعی از پدیده های مربوط به مغز را که قبلا برای ما معما بودند در یک چارچوب واحد توصیف می کند.
ایده ی پردازش پیش بینی کننده این است که بر خلاف درک سنتی از مغز ادراک ما تنها یک جریان از جهان بیرون و از طریق حسگر هایمان (بینایی چشایی لامسه بویایی و شنوایی) به مغز نیست. در دیدگاه سنتی هنگامی که شما تصویر یک سیب را میبینید این تصویر بعد از شکل گرفتن بر روی شبکیه چشم و عبور از عصب های بینایی وارد مغز شده و در مرحله نخست الگوهای ساده مانند خطوط شناسایی می شوند و به تدریج ویژگی های سطح بالاتر آن اضافه می شوند (مناطق V1 تا V5 مغز). در این دیدگاه مغز یک سیستم منفعل است که منتظر پردازش داده های بیرون است. به عبارتی مغز چیزی جز یک ماشین تشخیص الگو نیست. اما این توصیف تنها نصف ماجرا است.
در پردازش پیش بینی کننده به این نکته پی می بریم که مغز قبل از آنکه حتی سیگنال های حسی از راه برسند دست به ساختن واقعیت بیرونی میزند! به عبارتی مغز علاوه بر جریان اطلاعات از پایین به بالا (از حسگرها به مراحل بالاتر مغز) یک جریان اطلاعات از بالا به پایین هم دارد که قبل از آنکه مثلا تشخیص داده شود که فلان قسمت تصویر یک سیب وجود دارد آن تصویر را میسازد. به این ترتیب مغز به صورت فعال در ساختن واقعیتی که درک می کنیم، دخیل است. اما مغز چگونه می داند که چه باید تولید کند؟ پژوهش ها نشان داده است که مغز حاوی مدل های تولیدی (generative model) زیادی است که با دقت زیاد می توانند آنچه انتظار می رود را پیش بینی کنند.
فرض کنید وارد اتاقتان می شوید و به سمت میز کار می روید و فنجان چایتان را بر میدارید. تصور خودتان این است که تمام محیط اطراف را می بینید و می شنوید و لمس و بو میکنید اما در عمل مغز شما بخش زیادی از آنچه در اطراف شماست از صداها و بوها و تصاویر و غیره را میسازد چون از قبل می داند قرار است به چه محیطی وارد شود. مغز ما حاوی میلیون ها چارچوب است که براحتی جهان اطراف ما را بازسازی می کند. ممکن است گاهی متوجه شده باشید چیز خیلی مشخصی را که در جلویتان بود را ندیده اید. مثلا یک لنگه جوراب روی میزتان! دلیل این اتفاق این است که شما همه چیز را نمی بنید! البته این به آن معنی هم نیست که مغز به داده های ورودی توجهی نمی کند. مغز بر اساس پیش فرض ها (prior) ها جلو می رود تا زمانی که جریان تولیدی از بالا به پایین در نقطه ای با جریان پایین به بالا تناقض داشته باشد در این صورت یک جریان خطا ایجاد می کند و سیگنال خطا به مناطق بالاتر منتقل شده و پیش فرض اصلاح می شود. اما در بقیه موارد جریان پایین به بالا اگر تفاوت چندانی با جریان بالا به پایین نداشته باشد کنسل شده و به مراحل بالاتر نمیرود. با این کار مغز حجم بسیار زیادی از محاسبات را انجام نمی دهد. آنچه ادراک می شود انتظار ما از جهان بیرون است و نه آنچه واقعا بیرون است!!
این جریان بالا به پایین در خواب هایی که میبینیم به صورت کامل غالب می شود. به این ترتیب که هیچ جریانی از پایین با بالا وجود ندارد و تمام آنچه ادراک می شود مدل های تولیدی مغز است. اندی کلارک در کتاب surfing the uncertainty ادراک را نوعی توهم (hallucination) کنترل شده توصیف می کند! به عبارتی همه ما همیشه (حتی در بیداری) در یک رویا قرار داریم و فقط هر از گاهی متوجه واقعیت بیرون می شویم. این یکی از مهم ترین شیوه های مغز در کارا بودن و صرفه جویی کردن در حجم باورنکردنی از محاسبات است.
در شبکه های عصبی مصنوعی این مدل توسط دو شبکه معروف RBM و Helmholtz machines به صورت بسیار ابتدایی و خام شبیه سازی شده اند. در این پست زیر در این مورد بیشتر نوشته ام
پردازش پیش بینی کننده (predictive processing) بدون شک یکی از بزرگترین کشفیات علمی در حوزه ی دانش مغز و علوم شناختی در دو دهه اخیر بوده است. ایده ی پردازش پیش بینی کننده طیف وسیعی از پدیده های مربوط به مغز را که قبلا برای ما معما بودند در یک چارچوب واحد توصیف می کند.
ایده ی پردازش پیش بینی کننده این است که بر خلاف درک سنتی از مغز ادراک ما تنها یک جریان از جهان بیرون و از طریق حسگر هایمان (بینایی چشایی لامسه بویایی و شنوایی) به مغز نیست. در دیدگاه سنتی هنگامی که شما تصویر یک سیب را میبینید این تصویر بعد از شکل گرفتن بر روی شبکیه چشم و عبور از عصب های بینایی وارد مغز شده و در مرحله نخست الگوهای ساده مانند خطوط شناسایی می شوند و به تدریج ویژگی های سطح بالاتر آن اضافه می شوند (مناطق V1 تا V5 مغز). در این دیدگاه مغز یک سیستم منفعل است که منتظر پردازش داده های بیرون است. به عبارتی مغز چیزی جز یک ماشین تشخیص الگو نیست. اما این توصیف تنها نصف ماجرا است.
در پردازش پیش بینی کننده به این نکته پی می بریم که مغز قبل از آنکه حتی سیگنال های حسی از راه برسند دست به ساختن واقعیت بیرونی میزند! به عبارتی مغز علاوه بر جریان اطلاعات از پایین به بالا (از حسگرها به مراحل بالاتر مغز) یک جریان اطلاعات از بالا به پایین هم دارد که قبل از آنکه مثلا تشخیص داده شود که فلان قسمت تصویر یک سیب وجود دارد آن تصویر را میسازد. به این ترتیب مغز به صورت فعال در ساختن واقعیتی که درک می کنیم، دخیل است. اما مغز چگونه می داند که چه باید تولید کند؟ پژوهش ها نشان داده است که مغز حاوی مدل های تولیدی (generative model) زیادی است که با دقت زیاد می توانند آنچه انتظار می رود را پیش بینی کنند.
فرض کنید وارد اتاقتان می شوید و به سمت میز کار می روید و فنجان چایتان را بر میدارید. تصور خودتان این است که تمام محیط اطراف را می بینید و می شنوید و لمس و بو میکنید اما در عمل مغز شما بخش زیادی از آنچه در اطراف شماست از صداها و بوها و تصاویر و غیره را میسازد چون از قبل می داند قرار است به چه محیطی وارد شود. مغز ما حاوی میلیون ها چارچوب است که براحتی جهان اطراف ما را بازسازی می کند. ممکن است گاهی متوجه شده باشید چیز خیلی مشخصی را که در جلویتان بود را ندیده اید. مثلا یک لنگه جوراب روی میزتان! دلیل این اتفاق این است که شما همه چیز را نمی بنید! البته این به آن معنی هم نیست که مغز به داده های ورودی توجهی نمی کند. مغز بر اساس پیش فرض ها (prior) ها جلو می رود تا زمانی که جریان تولیدی از بالا به پایین در نقطه ای با جریان پایین به بالا تناقض داشته باشد در این صورت یک جریان خطا ایجاد می کند و سیگنال خطا به مناطق بالاتر منتقل شده و پیش فرض اصلاح می شود. اما در بقیه موارد جریان پایین به بالا اگر تفاوت چندانی با جریان بالا به پایین نداشته باشد کنسل شده و به مراحل بالاتر نمیرود. با این کار مغز حجم بسیار زیادی از محاسبات را انجام نمی دهد. آنچه ادراک می شود انتظار ما از جهان بیرون است و نه آنچه واقعا بیرون است!!
این جریان بالا به پایین در خواب هایی که میبینیم به صورت کامل غالب می شود. به این ترتیب که هیچ جریانی از پایین با بالا وجود ندارد و تمام آنچه ادراک می شود مدل های تولیدی مغز است. اندی کلارک در کتاب surfing the uncertainty ادراک را نوعی توهم (hallucination) کنترل شده توصیف می کند! به عبارتی همه ما همیشه (حتی در بیداری) در یک رویا قرار داریم و فقط هر از گاهی متوجه واقعیت بیرون می شویم. این یکی از مهم ترین شیوه های مغز در کارا بودن و صرفه جویی کردن در حجم باورنکردنی از محاسبات است.
در شبکه های عصبی مصنوعی این مدل توسط دو شبکه معروف RBM و Helmholtz machines به صورت بسیار ابتدایی و خام شبیه سازی شده اند. در این پست زیر در این مورد بیشتر نوشته ام
Medium
Predictive Processing, Restricted Boltzmann Machines, and Helmholtz Machines
Predictive Processing (PP) might be one of the most important discoveries we had about the brain in the last two decades. The mechanism of…
🔵 پردازش پیش بینی کننده، ماشین بولتزمن و ماشین هلمهولتز 🔵
از یک دیدگاه بیزینی مدل های تولیدی (generative models) که جریان بالا به پایین را می سازند همان احتمال های پیشنی prior ها هستند که ما از طریق تجربه ساخته ایم و جریان پایین به بالا نمایانگر اطلاعات خام یا likelihood ها هستند. اتفاقی که می افتد این است که اگر داده ها و پیشینی ها با هم همخوانی داشته باشند احتمال posterior یا پسینی تغییر چندانی نخواهد داشت اما اگر این دو از هم فاصله زیاد داشته باشند احتمال پسینی مجبور به حرکت به سمت توزیع داده ها می شود. این همان قانون بیز است.
از یک دیدگاه بیزینی مدل های تولیدی (generative models) که جریان بالا به پایین را می سازند همان احتمال های پیشنی prior ها هستند که ما از طریق تجربه ساخته ایم و جریان پایین به بالا نمایانگر اطلاعات خام یا likelihood ها هستند. اتفاقی که می افتد این است که اگر داده ها و پیشینی ها با هم همخوانی داشته باشند احتمال posterior یا پسینی تغییر چندانی نخواهد داشت اما اگر این دو از هم فاصله زیاد داشته باشند احتمال پسینی مجبور به حرکت به سمت توزیع داده ها می شود. این همان قانون بیز است.
اینکه چقدر به سمت داده حرکت می کنیم و چقدر در احتمال پیشینی می مانیم بستگی به میزان اعتماد ما به داده ها دارد. در اصطلاح مغز به این «توجه» (Attention) می گوییم. به عبارتی توجه میزان بالانس بین جریان های پایینی و بالایی است و با فاکتوری به اسم precision میزان آن تعیین می شود. در این جا precision چیزی جز معکوس واریانس داده های پایین به بالا نیست. (در شکل زیر همان Noise). اما در عمل این چطور کار می کند. فرض کنید در یک شب تاریک و بارانی و طوفانی در یک مسیر آشنا به سمت خانه رانندگی می کنید در این حالت اعتماد شما به آنچه بیرون می بینید کمتر است به عبارتی در این حالت اعتماد شما به prior های مغز که همان جریان بالا به پایین است بیشتر از جریان داده های پایین به بالاست. از طرفی هنگامی که در یک جاده ی نا آشنا در روز رانندگی می کنید کمتر به اطلاعات پیشینی (prior) دقت می کنید و سعی می کنید بیشتر به اطلاعات جدید از پایین به بالا (از حسگر هایتان) اعتماد کنید. پیچیدگی این تنظیم ها آنقدر زیاد است که شاید آشکار کند چرا با وجود سالها وعده و وعید در مورد اتومبیل های خودران همچنان چنین سیستم هایی مشکلات زیادی دارند.