رفتن به نوشته‌ها

برچسب: الگوریتم

رنگ، هوش مصنوعی، سینما و چند داستان دیگر

احتمالا هر کدوم از ما توی حلقه‌ی دوستان نزدیکمون کسانی رو می‌شناسیم که توی رشته‌های فنی تحصیل می‌کنند اما به ادبیات، علوم انسانی یا هنر علاقه‌ی زیادی دارند و خیلی وقت‌ها هم به تغییر رشته فکر می‌کنند اما اصطلاحا تمام عمرشون شنیدند: «این رو بخون اون رو هم کنارش ادامه بده!»

من، عرفان فرهادی، یکی از همون آدم‌ها هستم. سال ۹۵ وارد رشته‌ی مهندسی کامپیوتر دانشگاه شریف شدم، سال ۹۷ یه مستند به نام «خوش درخشید ولی» ساختم و الان هم ترم دوم ارشد سینما هستم. طی چند سال گذشته داشتم تلاش می‌کردم کارهایی انجام بدم تا وجوه مختلف خودم از مهندس کامپیوتر بودن تا علاقه‌ی به هنر رو به صورت متناسبی پرورش و بروز بدم. حدود سه هفته پیش توی دانشگاه شریف ارائه‌ای داشتم به نام «رنگ، هوش مصنوعی، سینما و چند داستان دیگر» که در ادامه گزارش خلاصه‌ای ازش رو این‌جا می‌نویسم. ارائه دو بخش داشت، بخش اول به معرفی رشته Human-Computer Interaction و ارائه‌ی فرآیند و نتایج کارآموزی‌ای که من در حوزه‌ی رنگ و هوش مصنوعی توی دانشگاه آلتوی فنلاند داشتم گذشت و توی بخش دوم که قالب پرسش و پاسخ کمی از تجربه‌هایی که این سال‌ها داشتم رو به اشتراک گذاشتم.

حوزه‌ی تعامل انسان و رایانه Human-Computer Interaction (یا به اصطلاح HCI) همون‌طور که از اسمش برمی‌آد به نقطه‌ی اتصال انسان و فناوری می‌پردازه. بر خلاف بقیه‌ی حوزه‌های پژوهشی کامپیوتر که به حل مسائل تئوری یا ساخت و بهبود عملکرد سخت‌افزارها، نرم‌افزارها و الگوریتم‌ها می‌پردازه، این رشته بیش‌تر از همه با انسان و شکل کار کردنش با کامپیوتر توی زمینه‌های مختلف سروکار داره. این تفاوت باعث شده که حتی شکلی که پژوهش‌های این حوزه بررسی و سنجیده می‌شن هم متفاوت باشه؛ مثلا اگه با الگوریتم‌های یادگیری ماشین تجربه‌ی کار کردن داشته باشید می‌دونید که در نهایت پژوهشگرها موظفند آماره‌هایی مثل precision یا recall رو گزارش کنند. این در حالیه که تو این حوزه خیلی وقت‌ها برای سنجش کیفیت، پژوهشگر باید اصطلاحا مطالعات کاربری (user-study) اجرا کنه و به زبون خودمونی کارش رو بسپاره دست کاربر و کیفیت کارش رو از طریق شیوه‌های مختلفی مثل مصاحبه و پرسشنامه بسنجه. همین باعث می‌شه که این حوزه نه فقط تو زمینه‌ی کار خیلی بین‌رشته‌ای باشه که حتی شیوه‌ی پژوهش هم بعضی وقت‌ها شبیه به پژوهش‌های حوزه‌ی علوم انسانی بشه.

پروژه‌ی ما توی همین حوزه بود. سوالی که روز اولی که وارد دوره شدم جلوی رومون گذاشته بودن این بود که «چطوری می‌تونیم با استفاده از هوش مصنوعی به طراح‌ها کمک کنیم و کارشون رو ساده‌تر کنیم». اما اصلا کار طراح‌ها چیه؟ جه تفاوتی با هنر داره؟ هیچ ایده‌ای نداشتم. یکی دو هفته‌ی اول کارآموزیم به مطالعه در مورد مفهوم design گذشت. فهمیدم که بر خلاف هنر که خیلی وقت‌ها آنی خلق می‌شه و هنرمند ناخودآگاهش رو آزاد می‌کنه تا خلق کنه؛ توی طراحی با یه هدف اساسی و اولیه سروکار داریم که توی تمام پروسه باید مدنظر بگیریمش. مثلا کسی که می‌خواد یه پوستر تبلیغاتی بسازه همیشه باید این هدف که می‌خواد یه محصولی رو بفروشه مدنظر داشته باشه و ترکیب‌بندی تصویر و انتخاب رنگ و بقیه‌ی تصمیماتی که می‌گیره هم تماما متأثر از این هدف هستند.

اما همه‌ی ماجرا این نیست. پژوهشگرهای این حوزه فرآیند طراحی رو مدل‌سازی کرده‌اند و به این نتیجه رسیدند که یه طراح در طی این فرآیند به صورت تکرار شونده یا iterative بین چند فضا جابجا می‌شه. ابتدا بر اساس هدف طراحی، ایده‌پردازی می‌کنه و پیش‌نمونه (پروتوتایپ‌)های متعدد می‌سازه و به صورت «طراحانه‌ای» بارش فکری می‌کنه بعد وارد ساخت نمونه یا artifact می‌شه و در نهایت مجددا با بررسی این‌که چقدر هدف اولیه محقق شده این چرخه رو تکرار می‌کنه. مثلا کسی که می‌خواد یه دوچرخه‌ی مسابقه طراحی کنه یه سری هدف مثل سرعت و راحتی در ذهن داره بعد شروع می‌کنه روی کاغذ یه سری طرح یا sketch ساده از دوچرخه‌ای که تو ذهنش داره می‌کشه؛ ماده یا material اولیه‌ی ساخت رو بررسی می‌کنه و در نهایت یه نسخه‌ی اولیه می‌سازه و میزان رسیدن به اهدافش رو با تست این نسخه می‌سنجه.

یک مدل‌سازی از فرآیند طراحی
یک مدل‌سازی از فرآیند طراحی

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

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

خب حالا که از فرآیند طراحی سر در آوردیم، ما چطوری می‌تونیم به طراح کمک کنیم؟

وقتی با طراح‌ها مصاحبه کردیم متوجه شدیم که توی این فرآیند دوست دارند با سرعت بیش‌تری چرخه رو تکرار کنند و حالت‌های مختلف رو سریع‌تر تصور کنند؛ برای همین سعی کردیم بخش‌هایی از این فرآیند رو به کمک هوش مصنوعی خودکار کنیم. ابزاری که ما ساختیم اول با استفاده از مدل‌های مختلف یادگیری ماشین saliency-based مثل deepgaze به چند رنگ اصلی در نقطه‌ی تمرکز می‌رسید بعد سعی می‌کرد با پیدا کردن رنگ‌های مکمل یه پالت کامل ایجاد کنه و در نهایت روی عناصر مختلف رنگ متناسبی اعمال کنه. جزئیات فنی این کار از حوصله‌ی این مطلب خارجه اما یه نکته‌ی مهم دیگه این‌جا در مورد حوزه‌ی HCI همینه که ما به عنوان کسانی که تو این حوزه کار می‌کنیم خودمون به صورت مستقل به توسعه یا ساختن این مدل‌های بینایی ماشین و… نپرداختیم بلکه از نتایج کار دیگران استفاده کردیم. در واقع مشارکت اصلی این کار در شیوه‌ی به کارگیری این مدل‌های مختلف در کنار هم و ایجاد یک شیوه‌ی تعامل مناسبه.

مراحل الگوریتم

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

تصویری از پلاگین طراحی‌شده در محیط نرم‌افزار figma

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

در نهایت خروجی کل پروژه در قالب یک مقاله توی کنفرانس IUI 2023 ارائه شد که توی این لینک قابل دسترسیه. مشارکت در این پروژه برای من تجربه‌ی مفیدی بود و در طول پروژه با ساختار و شیوه‌ی انجام یک پژوهش توی رشته HCI آشنا شدم. جنس بین‌رشته‌ای کار، مطالعه در فضای طراحی و استفاده از دانش کامپیوتری تو زمینه‌ای که به هنر مربوط می‌شد از جمله موارد جذاب پروژه برای من بود. اما به عنوان توصیه به کسانی مثل خودم که دنبال کارهای بین‌رشته‌ای می‌گردند دوست دارم این رو بگم که فراموش نکنید در هر پروژه‌ای مسئولیت شما یه چیز مشخصه؛ ممکنه کاری که می‌کنید با متریال هنری یا گرافیکی و… باشه اما واقعیت اینه که شما برنامه‌نویسید و به نظر خودم توی مجموعه‌ی تجربه‌ها و تلاش‌هایی که من برای نزدیک کردن علائقم داشتم (چه این پروژه، چه بازی‌سازی، چه طراحی موزه، چه پروژه‌های پژوهشی دیگه) این مهم‌ترین بینشی بود که پیدا کردم. نویسندگی، برنامه‌نویسی، مهارت‌های مدیریتی، فهم بصری و… همه عضله‌های مختلفی هستند که ما به حسب کار اصلی‌ای که در هر برهه انجام می‌دیم تقویتشون می‌کنیم و برای آدم‌هایی که میان دو دنیا زندگی می‌کنند رشد متوازن این عضله‌ها شاید مهم‌ترین مسئولیت باشه؛ حتی مهم‌تر از این‌که چه عنوان شغلی‌ای دارند.

«مقدمه‌ای بر بازبهنجارش» هفته چهارم: مدل آیزینگ

دوره «مقدمه‌ای بر بازبهنجارش»

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

با تشکر از Simon Dedeo، موسسه سانتافه و بهار بلوک آذری.

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

هفته چهارم: مدل آیزینگ

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


ویدیوها

۱) مرور جلسات گذشته و معرفی مدل آیزینگ

۲) درشت-دانه بندی شبکه اسپینی

۳) یافتن نقاط ثابت


برای مطالعه بیشتر

برای بیشتر عمیق شدن

شبیه‌سازی مدل آیزینگ


اسلایدها

بازبهنجارش-آیزینگ1