🔵یادگیری عمیق، مغز و متافیزیک!(قسمت ششم)🔵
در قسمت قبل یافتن بهترین فرضیه در بین فرضیه های رقیب با وجود یک مجموعه ثابت از داده ها را بر اساس معیار "کوتاه ترین برنامه برای تولید آن داده ها" تعریف کردیم. این بخصوص برای انتقال داده ها بسیار مهم است دقیقا مانند مورد خواندن شماره تلفن برای شخصی آن سوی خط.
در سالهای نخستین ایجاد ارتباطات الکترونیک و فرستادن پیام های دیجیتالی، به علت پایین بودن پهنای باند شبکه ها، فشرده سازی داده ها بسیار حیاتی بود. اگر شما می خواستید پیامی به صورت:
001001001001001...001001
را بفرستید واقعا احمقانه بود که کل آن را بفرستید در صورتی که می توانستید آن را به صورت فشرده در قالب برنامه ای که آن را تولید میکند بفرستید. این گونه نگرانی ها باعث شد اشخاصی چون کلاود شانون(claude shannon) ریاضیدان آمریکایی، به فکر توسعه یک چارچوب نظری قدرتمند بیفتند که بتواند به ما راه حل های جامع برای فشرده سازی انواع داده ها را بدهد. نظریه اطلاعات در قلب همین نیاز ایجاد شد. شانون و دیگران متوجه شدند که الگوهای زیادی در داده های روزمره ای که استفاده میکنیم وجود دارد که می تواند به انتقال داده را از طریق فشرده سازی کمک کند. اما این الگو ها در بیشتر مواقع مانند دنباله بالا ساده نیست بلکه الگویی است که تصادف هم با آن همراه است.
بیایید با یک مثال موضوع را روشن تر کنیم. در زبان های طبیعی مثل فارسی یا انگلیسی جملات و کلمات دنباله ای از حروف هستند. اما این حروف به صورت تصادفی پخش نشده اند: ساده ترین واقعیت این است که ما بعضی از حروف را بیشتر از بقیه استفاده می کنیم مثلا در فارسی حرف "ا" پرتکرار ترین و "ژ" کم تکرار ترین است.
در قسمت قبل یافتن بهترین فرضیه در بین فرضیه های رقیب با وجود یک مجموعه ثابت از داده ها را بر اساس معیار "کوتاه ترین برنامه برای تولید آن داده ها" تعریف کردیم. این بخصوص برای انتقال داده ها بسیار مهم است دقیقا مانند مورد خواندن شماره تلفن برای شخصی آن سوی خط.
در سالهای نخستین ایجاد ارتباطات الکترونیک و فرستادن پیام های دیجیتالی، به علت پایین بودن پهنای باند شبکه ها، فشرده سازی داده ها بسیار حیاتی بود. اگر شما می خواستید پیامی به صورت:
001001001001001...001001
را بفرستید واقعا احمقانه بود که کل آن را بفرستید در صورتی که می توانستید آن را به صورت فشرده در قالب برنامه ای که آن را تولید میکند بفرستید. این گونه نگرانی ها باعث شد اشخاصی چون کلاود شانون(claude shannon) ریاضیدان آمریکایی، به فکر توسعه یک چارچوب نظری قدرتمند بیفتند که بتواند به ما راه حل های جامع برای فشرده سازی انواع داده ها را بدهد. نظریه اطلاعات در قلب همین نیاز ایجاد شد. شانون و دیگران متوجه شدند که الگوهای زیادی در داده های روزمره ای که استفاده میکنیم وجود دارد که می تواند به انتقال داده را از طریق فشرده سازی کمک کند. اما این الگو ها در بیشتر مواقع مانند دنباله بالا ساده نیست بلکه الگویی است که تصادف هم با آن همراه است.
بیایید با یک مثال موضوع را روشن تر کنیم. در زبان های طبیعی مثل فارسی یا انگلیسی جملات و کلمات دنباله ای از حروف هستند. اما این حروف به صورت تصادفی پخش نشده اند: ساده ترین واقعیت این است که ما بعضی از حروف را بیشتر از بقیه استفاده می کنیم مثلا در فارسی حرف "ا" پرتکرار ترین و "ژ" کم تکرار ترین است.
این نشان دهند یک نظم یا الگو است! همین واقعیت به ما کمک می کند برای حرفی که پر تکرارتراست تعداد بیت های کمتری در ارتباطات اختصاص داد و برای حرف کم تکرار تر بیت های بیشتر. این روش بسیار بهینه تر از حالتی است که طول بیت مساوی برای همه حروف می گیریم. این عدم توازن باعث می شود ما به صورت بهینه تری از پهنای باند شبکه استفاده کنیم. کد هافمن یک روش برای این بهینه سازی است. البته شاید به نظرتان خنده دار بیاید که در آن دوران نگرانی برای فرستادن حروف بر روی شبکه وجود داشت. امروزه شبکه های پرسرعت اینترنت به راحتی چندین مگابایت تا چند صد مگابایت را در ثانیه منتقل میکنند. اما حتی با چنین شبکه هایی و کاربران زیاد آن نگرانی در مورد فرستادن ویدیو ها به صورت استریمینگ مثلا بر روی سایت های به اشتراک گذاری ویدیو مانند یوتیوب وجود دارد. باز هم پژوهشگران حوزه علوم کامپیوتر متوجه شدند که ویدیو هم مانند زبان صرفا مجموعه از داده های تصادفی نیست. نظم موجود در یک ویدیو به ما کمک میکند که آن را فشرده کنیم و راحت تر بر روی شبکه بفرستیم.
یک مثال میزنیم تا این قضیه روشن تر شود: هر ویدیو دنباله ای از فریم هاست و هر فریم یک عکس است. روش سنتی و ناکارآمد آن است که فریم ها را یکی یکی بر روی شبکه به سمت گیرنده بفرستیم اما وقتی شما یک ویدیو میبینید تمام تصویر در حال حرکت نیست. مثلا در ویدیوی یک خودروی در حال حرکت فقط خودرو حرکت می کند و پشت صحنه تغییری نمی کند. بنابراین لزومی ندارد در فریم های متوالی بخشی از فریم که ثابت است را تا زمانی که تغییری نمیکند بر روی شبکه فرستاد. این تکنیک به تکنیک IBP معروف است. فریم Iحاوی یک فریم کامل است. فریم بعدی یک فریم P است که فقط شامل قسمتی از تصویر است که تغییر کرده(در این جا دایره های آبی).
یک مثال میزنیم تا این قضیه روشن تر شود: هر ویدیو دنباله ای از فریم هاست و هر فریم یک عکس است. روش سنتی و ناکارآمد آن است که فریم ها را یکی یکی بر روی شبکه به سمت گیرنده بفرستیم اما وقتی شما یک ویدیو میبینید تمام تصویر در حال حرکت نیست. مثلا در ویدیوی یک خودروی در حال حرکت فقط خودرو حرکت می کند و پشت صحنه تغییری نمی کند. بنابراین لزومی ندارد در فریم های متوالی بخشی از فریم که ثابت است را تا زمانی که تغییری نمیکند بر روی شبکه فرستاد. این تکنیک به تکنیک IBP معروف است. فریم Iحاوی یک فریم کامل است. فریم بعدی یک فریم P است که فقط شامل قسمتی از تصویر است که تغییر کرده(در این جا دایره های آبی).
تنها حالتی که نمی توان ویدیو را فشرده کرد زمانی است که ویدیو کاملا تصادفی باشد. ویدیوی تصادفی همان برفکی است که قدیم ها بر روی تلویزیون هایتان می دیدید! همین اصول در مورد فشرده سازی موسیقی در قالب mp3 و تصاویر در قالب jpeg هم وجود دارد. آهنگ هایی که میشنویم نظم دارند و به همین خاطر است که می توانیم آن را فشرده کنیم.
بنابراین داده ها با یک احتمال ظاهر نمی شوند و با هم ارتباط دارند. حروف و کلماتِ زبان با یک احتمال ظاهر نمی شوند و احتمال تغییر در بخش هایی از ویدیو بیشتر از بقیه است: مثلا ما انتظار نداریم که در پشت صحنه ناگهان چراغ خواب شروع به حرکت کند!. معمولا چیزی که تغییر میکند و ما هم انتظار آن را داریم خود کاراکتر اصلی در تصویر است.در وسط یک آهنگ انتظار نداریم که به یک باره ریتم عوض شود. آهنگی که ریتم(نظم) ندارد اصولا قابل شنیدن نیست. کافی است به صدایی که با برفک تلویزیون همراه می شود گوش دهید!(نویز سفید)
بنابراین داده ها با یک احتمال ظاهر نمی شوند و با هم ارتباط دارند. حروف و کلماتِ زبان با یک احتمال ظاهر نمی شوند و احتمال تغییر در بخش هایی از ویدیو بیشتر از بقیه است: مثلا ما انتظار نداریم که در پشت صحنه ناگهان چراغ خواب شروع به حرکت کند!. معمولا چیزی که تغییر میکند و ما هم انتظار آن را داریم خود کاراکتر اصلی در تصویر است.در وسط یک آهنگ انتظار نداریم که به یک باره ریتم عوض شود. آهنگی که ریتم(نظم) ندارد اصولا قابل شنیدن نیست. کافی است به صدایی که با برفک تلویزیون همراه می شود گوش دهید!(نویز سفید)
🔵یادگیری عمیق، مغز و متافیزیک!(میان پرده)🔵
قبل از آنکه شروع به بحث در مورد نوع داده سوم که حاصل فرایند های تصادفی است(مانند پرتاب سکه) کنیم بهتر است قدری بر روی نوع داده اول (مانند دنباله ساده ی 001001001... که در قسمت های قبلی دیدیم) درنگ کنیم. فرآیند هایی که نوع داده های اول را تولید میکنند همیشه اینقدر ساده "بنظر" نمی رسند. در واقع در برخی مواقع آن ها شگفتی های ژرفی می آفرینند که در تصور نمی آید. بطور مثال می توان به فراکتال مجموعه مندلبرات اشاره کرد. مجموعه مندلبرات مجموعه ای از اعداد مختلط است. اگر عدد مختلط c را در این فرمول قرار دهیم:
f(z)=z^2+c
و با z=0 شروع کنیم و خروجی تابع را دوباره به خورد خود تابع بدهیم دنباله ای درست می شود. دنباله ممکن است محدود بماند یا بیش از اندازه کوچک یا بزرگ شود. اگر محدود نماند به مجموعه مندلبرات تعلق ندارد. فرمول ساده ای بنظر می رسد. بیایید چند عدد را بر روی آن امتحان کنیم و بررسی کنیم که آیا در این مجموعه قرار می گیرند یا خیر. مثلا c=1 را در نظر بگیرد:
z=0^2+1=1
z=1^2+1=2
z=2^2+1=5
z=5^2+1=26
خوب بنظر میرسد برای c=1 دنباله محدود نیست پس c=1 جزو مجموعه مندلبرات نیست. اما برای c=-1 داریم:
z=0^2-1=-1
z=(-1)^2-1=0
z=0^2-1=-1
در این حالت دنباله فقط بین دو عدد -1 و 0 حرکت میکند و بنابراین محدود و به مجموعه مندلبرات تعلق دارد. همین کار را می توان برای اعداد مختلطی مانند c=-1-i و غیره هم تکرار کرد. اگر این کار را تکرار کنید نتیجه شگفت انگیز خواهد بود. برخی آن را اثر انگشت خدا می نامند!!
قبل از آنکه شروع به بحث در مورد نوع داده سوم که حاصل فرایند های تصادفی است(مانند پرتاب سکه) کنیم بهتر است قدری بر روی نوع داده اول (مانند دنباله ساده ی 001001001... که در قسمت های قبلی دیدیم) درنگ کنیم. فرآیند هایی که نوع داده های اول را تولید میکنند همیشه اینقدر ساده "بنظر" نمی رسند. در واقع در برخی مواقع آن ها شگفتی های ژرفی می آفرینند که در تصور نمی آید. بطور مثال می توان به فراکتال مجموعه مندلبرات اشاره کرد. مجموعه مندلبرات مجموعه ای از اعداد مختلط است. اگر عدد مختلط c را در این فرمول قرار دهیم:
f(z)=z^2+c
و با z=0 شروع کنیم و خروجی تابع را دوباره به خورد خود تابع بدهیم دنباله ای درست می شود. دنباله ممکن است محدود بماند یا بیش از اندازه کوچک یا بزرگ شود. اگر محدود نماند به مجموعه مندلبرات تعلق ندارد. فرمول ساده ای بنظر می رسد. بیایید چند عدد را بر روی آن امتحان کنیم و بررسی کنیم که آیا در این مجموعه قرار می گیرند یا خیر. مثلا c=1 را در نظر بگیرد:
z=0^2+1=1
z=1^2+1=2
z=2^2+1=5
z=5^2+1=26
خوب بنظر میرسد برای c=1 دنباله محدود نیست پس c=1 جزو مجموعه مندلبرات نیست. اما برای c=-1 داریم:
z=0^2-1=-1
z=(-1)^2-1=0
z=0^2-1=-1
در این حالت دنباله فقط بین دو عدد -1 و 0 حرکت میکند و بنابراین محدود و به مجموعه مندلبرات تعلق دارد. همین کار را می توان برای اعداد مختلطی مانند c=-1-i و غیره هم تکرار کرد. اگر این کار را تکرار کنید نتیجه شگفت انگیز خواهد بود. برخی آن را اثر انگشت خدا می نامند!!
با اینکه بنظر می رسد پیچیدگی در این ساختار عجیب و غریب تمامی ندارد اما از دید نظریه کولموگروف این شی ریاضی بسیار ساده است زیرا از قانون بسیار ساده ای پیروی میکند و کد برنامه ای که آن را تولید میکند بسیار کوتاه است. برای اینکه این را ثابت کنیم کد متلب آن را در نظر میگیرم.
بیشتر کدی که در بالا میبیند صرفا برای آماده سازی یا رسم است. در واقع تنها بخش مهم کد حلقه ای است که میبیند که پیاده سازی همان تابع است.. خروجی این کد به صورت زیر خواهد بود.(رنگ ها نشان دهنده سرعت همگرایی هستند. بنابراین رنگ هرچه گرم تر سرعت همگرایی اعداد در آن بخش بیشتر و هر چه سرد تر سرعت همگرایی هم کمتر است)
maxIterations = 500;
gridSize = 1000;
xlim = [-0.748766713922161, -0.748766707771757];
ylim = [ 0.123640844894862, 0.123640851045266];
% Setup
t = tic();
x = linspace( xlim(1), xlim(2), gridSize );
y = linspace( ylim(1), ylim(2), gridSize );
[xGrid,yGrid] = meshgrid( x, y );
z0 = xGrid + 1i*yGrid;
count = ones( size(z0) );
% Calculate
z = z0;
for n = 0:maxIterations
z = z.*z + z0;
inside = abs( z )<=2;
count = count + inside;
end
count = log( count );
% Show
cpuTime = toc( t );
fig = gcf;
fig.Position = [200 200 600 600];
imagesc( x, y, count );
colormap( [jet();flipud( jet() );0 0 0] );
axis off
title( sprintf( '%1.2fsecs (without GPU)', cpuTime ) );
بیشتر کدی که در بالا میبیند صرفا برای آماده سازی یا رسم است. در واقع تنها بخش مهم کد حلقه ای است که میبیند که پیاده سازی همان تابع است.. خروجی این کد به صورت زیر خواهد بود.(رنگ ها نشان دهنده سرعت همگرایی هستند. بنابراین رنگ هرچه گرم تر سرعت همگرایی اعداد در آن بخش بیشتر و هر چه سرد تر سرعت همگرایی هم کمتر است)
MatlabTips
GIF
یک نمونه فراکتال که با حقه کامپیوتری ساخته شده است.
🌕یک تجربه شخصی🌕
شاید شما هم عکس هایی از مردم اروپا یا آمریکا در مترو یا مکان های عمومی در شبکه های اجتماعی دیده باشد که همه در حال کتاب خواندن هستند و زیرش در مورد سرانه بالای مصرف کتاب در این کشور ها گفته و آخرش هم به سرمان کوبیده اند که ای مردم نادان جهان سوم چرا کتاب نمی خوانید؟!! این البته خیلی از واقعیت دور نیست اما تمام واقعیت هم نیست!
برای من هم به عنوان یک شخص که خاطره ام از مترو تنها به فشار قبر و آدامس اوربیت و پاور بانک فروشان خلاصه می شود دیدن چنین صحنه هایی در نوع خود جدید و جالب بود. اما سعی کردم جلوتر برم تا اول به صورت دزدکی ببینم عنوان کتاب هایشان چیست یا سر صحبت را باز کنم و ببینم محتوای کتاب هایی که می خوانند چیست. بیشتر مردم کتاب می خوانند حتی کسانی که دانشگاه نرفته اند. اما چه کتاب هایی می خوانند؟ در چند مورد ابتدایی با کسانی روبرو می شدم که رمان های پرفروش را می خوانند. البته منظورم از رمان پرفروش قطعا رمان برادارن کارامازوف داستایوفسکی یا بیگانه آلبرکامو یا مسخ کافکا نیست. رمان ها در بیشتر مواقع بسیار سطحی و زرد بودند. اما این چند مورد اول استثنا نبودند. بعد از مدتی متوجه شدم که تقریبا به همان سختی که در ایران می شود آدم کتاب خوان پیدا کرد اینجا هم به سختی کسی پیدا می شود که حداقل یک کتاب متوسط(نه حتی کتاب های عمیق تر) خوانده باشد. ارزش محتوایی بیشتر این کتاب ها از دیدن حتی یک کلیپ یوتیوب یا سریال آبکی هم کمتر هستند.
در فرهنگ آموزشی ما(نه سیستم آموزشی که کلمه ای بس کلیشه ای ست) که نه فقط مدرسه بلکه خانواده و حتی فرهنگ گذشتگان ماست، کتاب جایگاه خاصی دارد. یاد گرفته ایم که ما کتاب می خوانیم تا دانا شویم و دانشمان بیشتر شود. کتاب باعث می شود دل پیر برنا شود و غیره و غیره! همین موضوع باعث شد که تصورمان این باشد زمانی کتاب می خوانیم که تمام مشکلاتمان حل شده باشد پانصد میلیارد تومان در حسابمان باشد سفر های دور دنیامان را رفته باشیم و بعد از آن صد میلیارد دارایی صد میلیون تومانش را صرف یک کتابخانه شخصی می کنیم می رویم روی صندلی چرمی مان می نشینیم و در حالی که قهوه ترکمان کنار دستمان است و نسیم مطبوع عصر می آید کتاب فلسفه غرب را از قفسه بر میداریم و به خودمان زحمت می دهیم که لایش را باز کنیم!!
اما هیچگاه کسی به ما نگفت که اولین دلیل کتاب خواندن لذت بردن است نه عالم و دانشمند شدن! اگر از شما بپرسم وقت آزادتان وقتی از سر کار و دانشگاه بر میگردید چکار می کنید. شاید بگویید یک سریال نگاه میکنم یا بازی کامپیوتری یا اینستاگرام گردی!! باید بگویم می توانید همین کار را با کتاب هم بکنید! البته نه کتاب فلسفه هگل! می توانید یک رمان جذاب و زرد بگیرید و براحتی مطالعه کنید! می گویید خوب اگر کتاب زرد است چه فایده ای دارد؟ و من هم میگویم هیچ فایده ای دقیقا مثل همان سریال نگاه کردن یا بازی کامپیوتری! شما می توانید کتاب بخوانید که تفریح کنید! این بنظرم اولین و مهمترین تغییر دیدگاه است. باز هم ممکن است بپرسید خوب اگر تفریح است چه فرقی دارد؟ همان سریالم را می بینم و چشمان خودم را هم کور نمی کنم. اما قبل از آنکه مواظب چشمان نازنینتان باشید که کتاب (و نه موبایل و مانیتور!!) آن را ضعیف کند به چند نکته می خواهم اشاره کنم.
هرچند گفتم کتاب خواندن می تواند یک تفریح مفرح باشد اما این تفریح خوشمزه است! شاید کسانی را دیده باشید که رمان یک فیلم را دیده باشند و برایتان بگویند که رمانش خیلی بهتر از فیلم بود! اگر اهل کتاب نباشید به هیچ عنوان نمی توانید قبول کنید که چطور مشتی کلمات و صفحات بی روح می تواند از فیلمی با هزاران جلوه ویژه و موسیقی و بازیگران جذاب بهتر باشد! اینجاست که باید بگویم شما از تخیل تان که عجیب و غریب ترین بخش وجود خودتان است غافل مانده اید! صد البته متقاعد کردن کسی که آن را تجربه نکرده است دشوار است. اما کتاب خواندن صرفا بیدار کردن قوه تخیل نیست. کتاب خواندن قوه های دیگر انسان را هم بیدار می کند. داستان به شما امکان می دهد که در دنیای دیگران هم زندگی کنید و درد ها و شادی هایشان را بفهمید. و صد البته کتاب خوانی انسان را «نرم خو» می کند! کسی که حتی برای نیم ساعت در درون خودش غرق می شود انسانی است که آرامش را حس می کند و کمتر درگیر با سطحیات و مبتذلات می شود. حتی اگر فقط رمان های مبتذل بخواند!!
به عنوان کسی که سالی بیشتر از دو کتاب نمی خواند هدفم این بود که تنها یک راه زیبای دیگر برای لذت بردن از زندگی به کسانی نشان دهم که حتی همان دو کتاب را نمی خوانند. تغییر دیدگاه دیگر این است که بدانیم کتاب خواندن ارزش نیست و نمی توان با آن یک عده را احمق تر یا دانا تر از دیگران دانست. اگر هدف کسب معرفت است، به قول بزرگی «معرفت همه جا هست»
شاید شما هم عکس هایی از مردم اروپا یا آمریکا در مترو یا مکان های عمومی در شبکه های اجتماعی دیده باشد که همه در حال کتاب خواندن هستند و زیرش در مورد سرانه بالای مصرف کتاب در این کشور ها گفته و آخرش هم به سرمان کوبیده اند که ای مردم نادان جهان سوم چرا کتاب نمی خوانید؟!! این البته خیلی از واقعیت دور نیست اما تمام واقعیت هم نیست!
برای من هم به عنوان یک شخص که خاطره ام از مترو تنها به فشار قبر و آدامس اوربیت و پاور بانک فروشان خلاصه می شود دیدن چنین صحنه هایی در نوع خود جدید و جالب بود. اما سعی کردم جلوتر برم تا اول به صورت دزدکی ببینم عنوان کتاب هایشان چیست یا سر صحبت را باز کنم و ببینم محتوای کتاب هایی که می خوانند چیست. بیشتر مردم کتاب می خوانند حتی کسانی که دانشگاه نرفته اند. اما چه کتاب هایی می خوانند؟ در چند مورد ابتدایی با کسانی روبرو می شدم که رمان های پرفروش را می خوانند. البته منظورم از رمان پرفروش قطعا رمان برادارن کارامازوف داستایوفسکی یا بیگانه آلبرکامو یا مسخ کافکا نیست. رمان ها در بیشتر مواقع بسیار سطحی و زرد بودند. اما این چند مورد اول استثنا نبودند. بعد از مدتی متوجه شدم که تقریبا به همان سختی که در ایران می شود آدم کتاب خوان پیدا کرد اینجا هم به سختی کسی پیدا می شود که حداقل یک کتاب متوسط(نه حتی کتاب های عمیق تر) خوانده باشد. ارزش محتوایی بیشتر این کتاب ها از دیدن حتی یک کلیپ یوتیوب یا سریال آبکی هم کمتر هستند.
در فرهنگ آموزشی ما(نه سیستم آموزشی که کلمه ای بس کلیشه ای ست) که نه فقط مدرسه بلکه خانواده و حتی فرهنگ گذشتگان ماست، کتاب جایگاه خاصی دارد. یاد گرفته ایم که ما کتاب می خوانیم تا دانا شویم و دانشمان بیشتر شود. کتاب باعث می شود دل پیر برنا شود و غیره و غیره! همین موضوع باعث شد که تصورمان این باشد زمانی کتاب می خوانیم که تمام مشکلاتمان حل شده باشد پانصد میلیارد تومان در حسابمان باشد سفر های دور دنیامان را رفته باشیم و بعد از آن صد میلیارد دارایی صد میلیون تومانش را صرف یک کتابخانه شخصی می کنیم می رویم روی صندلی چرمی مان می نشینیم و در حالی که قهوه ترکمان کنار دستمان است و نسیم مطبوع عصر می آید کتاب فلسفه غرب را از قفسه بر میداریم و به خودمان زحمت می دهیم که لایش را باز کنیم!!
اما هیچگاه کسی به ما نگفت که اولین دلیل کتاب خواندن لذت بردن است نه عالم و دانشمند شدن! اگر از شما بپرسم وقت آزادتان وقتی از سر کار و دانشگاه بر میگردید چکار می کنید. شاید بگویید یک سریال نگاه میکنم یا بازی کامپیوتری یا اینستاگرام گردی!! باید بگویم می توانید همین کار را با کتاب هم بکنید! البته نه کتاب فلسفه هگل! می توانید یک رمان جذاب و زرد بگیرید و براحتی مطالعه کنید! می گویید خوب اگر کتاب زرد است چه فایده ای دارد؟ و من هم میگویم هیچ فایده ای دقیقا مثل همان سریال نگاه کردن یا بازی کامپیوتری! شما می توانید کتاب بخوانید که تفریح کنید! این بنظرم اولین و مهمترین تغییر دیدگاه است. باز هم ممکن است بپرسید خوب اگر تفریح است چه فرقی دارد؟ همان سریالم را می بینم و چشمان خودم را هم کور نمی کنم. اما قبل از آنکه مواظب چشمان نازنینتان باشید که کتاب (و نه موبایل و مانیتور!!) آن را ضعیف کند به چند نکته می خواهم اشاره کنم.
هرچند گفتم کتاب خواندن می تواند یک تفریح مفرح باشد اما این تفریح خوشمزه است! شاید کسانی را دیده باشید که رمان یک فیلم را دیده باشند و برایتان بگویند که رمانش خیلی بهتر از فیلم بود! اگر اهل کتاب نباشید به هیچ عنوان نمی توانید قبول کنید که چطور مشتی کلمات و صفحات بی روح می تواند از فیلمی با هزاران جلوه ویژه و موسیقی و بازیگران جذاب بهتر باشد! اینجاست که باید بگویم شما از تخیل تان که عجیب و غریب ترین بخش وجود خودتان است غافل مانده اید! صد البته متقاعد کردن کسی که آن را تجربه نکرده است دشوار است. اما کتاب خواندن صرفا بیدار کردن قوه تخیل نیست. کتاب خواندن قوه های دیگر انسان را هم بیدار می کند. داستان به شما امکان می دهد که در دنیای دیگران هم زندگی کنید و درد ها و شادی هایشان را بفهمید. و صد البته کتاب خوانی انسان را «نرم خو» می کند! کسی که حتی برای نیم ساعت در درون خودش غرق می شود انسانی است که آرامش را حس می کند و کمتر درگیر با سطحیات و مبتذلات می شود. حتی اگر فقط رمان های مبتذل بخواند!!
به عنوان کسی که سالی بیشتر از دو کتاب نمی خواند هدفم این بود که تنها یک راه زیبای دیگر برای لذت بردن از زندگی به کسانی نشان دهم که حتی همان دو کتاب را نمی خوانند. تغییر دیدگاه دیگر این است که بدانیم کتاب خواندن ارزش نیست و نمی توان با آن یک عده را احمق تر یا دانا تر از دیگران دانست. اگر هدف کسب معرفت است، به قول بزرگی «معرفت همه جا هست»
🔵یادگیری عمیق، مغز و متافیزیک!(قسمت هفتم)🔵
ایده انتقال داده شاید پدیده ای مدرن به نظر برسد که خاستگاه آن هم مدرن است اما طبیعت به ما نشان می دهد که این کار را قبلا توانسته با شگفتی بالایی انجام دهد. تقریبا بیشتر پدیده های بیولوژیکی در انواع و اقسام انتقال پیام های خود از نظریه اطلاعات استفاده میکنند. واضح ترین مثال آن خود فرگشت است. انتقال اطلاعات ژنتیکی از یک نسل به نسل دیگر از طریق راه حل کدهای ژنتیکی به صورت DNA صورت می گیرد. در واقع DNA ها برنامه هایی هستند که اجزا اساسی ساخت یک موجود را از والد به فرزند مشخص میکنند. اگر DNA را مانند یک برنامه در نظر بگیریم حاملگی و رشد و نمو جنین در رحم به اجرای آن برنامه قابل تفسیر است. از این دید DNA بسیار بهینه است. اما اطلاعات چیست؟
اگر اتفاقی با احتمال بسیار بالا رخ بدهد ما خیلی غافلگیر نمی شویم چنین داده ای دارای ارزش اطلاعاتی کمی است. مثلا اگر به ما بگویند فردا خورشید طلوع می کند اطلاعات زیادی به ما نداده اند. اما اگر ما وسط تابستان باشیم و به ما بگویند فردا برف خواهد آمد اطلاعات زیادی به ما داده اند. پس اطلاعات با احتمال مرتبط است به صورت دقیق تر میزان اطلاعات رویداد X برابر است با(لگاریتم در پایه دو است):
ایده انتقال داده شاید پدیده ای مدرن به نظر برسد که خاستگاه آن هم مدرن است اما طبیعت به ما نشان می دهد که این کار را قبلا توانسته با شگفتی بالایی انجام دهد. تقریبا بیشتر پدیده های بیولوژیکی در انواع و اقسام انتقال پیام های خود از نظریه اطلاعات استفاده میکنند. واضح ترین مثال آن خود فرگشت است. انتقال اطلاعات ژنتیکی از یک نسل به نسل دیگر از طریق راه حل کدهای ژنتیکی به صورت DNA صورت می گیرد. در واقع DNA ها برنامه هایی هستند که اجزا اساسی ساخت یک موجود را از والد به فرزند مشخص میکنند. اگر DNA را مانند یک برنامه در نظر بگیریم حاملگی و رشد و نمو جنین در رحم به اجرای آن برنامه قابل تفسیر است. از این دید DNA بسیار بهینه است. اما اطلاعات چیست؟
اگر اتفاقی با احتمال بسیار بالا رخ بدهد ما خیلی غافلگیر نمی شویم چنین داده ای دارای ارزش اطلاعاتی کمی است. مثلا اگر به ما بگویند فردا خورشید طلوع می کند اطلاعات زیادی به ما نداده اند. اما اگر ما وسط تابستان باشیم و به ما بگویند فردا برف خواهد آمد اطلاعات زیادی به ما داده اند. پس اطلاعات با احتمال مرتبط است به صورت دقیق تر میزان اطلاعات رویداد X برابر است با(لگاریتم در پایه دو است):
اگر چیزی با احتمال صد در صد رخ دهد اطلاعات آن صفر بیت است و اگر با احتمال ۵۰ درصد اطلاعات آن یک بیت است و اگر احتمالش صفر باشد اطلاعات بی نهایت خواهد بود!! دقت کنید که مفهوم احتمال و به طبع آن احتمالات یک ویژگی سابجکتیو است به این معنا که اطلاعات یک رویداد ممکن است برای من صفر باشد و برای شما یک بیت باشد فقط به این خاطر که داده هایی که من به آن ها دسترسی دارم بیشتر از شماست!(این البته باز هم خود یک بحث طولانی فلسفی می طلبد)
میانگین اطلاعات بر روی تمام پیشامد های ممکنِ یک رویداد X هم آنتروپی است.
میانگین اطلاعات بر روی تمام پیشامد های ممکنِ یک رویداد X هم آنتروپی است.
آنتروپی میزان بی نظمی موجود در یک سیستم را نشان می دهد مفهومی که از فیزیک قرض گرفته شده است. آنتروپیِ (منبع تولید) دنباله ی 001 ها بسیار کمتر از یک دنباله کاملا تصادفی است. به همین منوال یک دنباله از جملات زبان طبیعی آنتروپی کمتری از یک دنباله تصادفی از حروف پشت سر هم دارد! می توان آنتروپی را برای ویدیو و تصویر و هر داده ای به این شیوه محاسبه کرد. (دنباله آنتروپی ندارد بلکه منبع تولید آن که یک فرآیند تصادفی است stochastic process میتواند آنتروپی داشته باشد)
اینجا بخشی است که شاید با شهود روزمره همخوانی نداشته باشد. اگر توجه کرده باشید گفتیم که آنتروپی یا بی نظمی دنباله های ساده پایین است و بی نظمی دنباله های پیچیده مانند یک دنباله از اعداد تصادفی بسیار بالا است. به این ترتیب در این چارچوب بی نظمی و پیچیدگی یک مفهوم دارند. برخلاف تصور روزمره که پیچیدگی را با نظم یکی میگیریم پیچیدگی در این جا کاملا مترادف با بی نظمی است.
اما سوال مهمی که هنوز جواب نداده ایم: ما از کجا توزیع احتمالاتی که داده ها رو تولید میکنند پیدا کنیم؟ قبل از هر چیز توجه کنید که ما همواره در مورد منبع تولید داده سخن گفتیم و نه خود داده. به عبارتی ما همواره با یک فرآیند تولید داده ها سر و کار داریم که عنصری از تصادف را همراه با خود دارد. مثلا فرآیند تصادفی بارش باران. فرآیند تصادفی زبان، فرآیند تصادفی تصویر چهره ها.
دقت کنید در اینجا ما با برنامه ای سر و کار نداریم که خیلی سرراست مثل دنباله 001 ها که قبلا داشتیم بتواند داده ها را تولید کند. اینجا با یک برنامه احتمالاتی یا به عبارتی توزیع احتمال سر و کار داریم. وقتی با پدیده های طبیعی مثل زبان یا تصاویر و ویدیو و غیره سر و کار داریم فقط با توزیع های احتمالاتی سروکار داریم. و در این موارد فقط می توانیم آماره هایی را مانند میانگین و واریانس یا کواریانس درمورد داده ها جمع آوری کنیم. مثلا میانگین و واریانس تعداد حروف آ در متون فارسی. باید دقت کنید که در مورد زبان موضوع پیچیده است چون حتی اگر بدانید احتمال تک تک حروف چقدر است باز هم باید به این نکته توجه کنید که باید بدانید احتمال آمدن هر حرفی بعد از هر حرف دیگری چقدر است و حتی ارتباط بین سه حرف و الخ را بدانید. به عبارتی کواریانس یا آماره های دو به دو هم مهم می شوند.(برای ویدیو و صوت هم خودتان فکر کنید)
با این اوصاف حالا چه توزیع(=مدل) احتمالاتی بهتر می تواند مثلا دنباله حروف را توضیح دهد؟ دقیقا مثل قبل، مدلی که تعداد فرضیات کمتری داشته باشد یا به عبارتی، ساده تر باشد. اما اگر بخواهیم این را به آنتروپی ترجمه کنیم مدلی ارجح تر است که دارای بیشترین آنتروپی(=بی نظمی) باشد. چون اگر نظمی در داده ها پنهان باشد به صورت اتوماتیک آنتروپی(=بی نظمی) آن را کمتر می کند. اگر شما هیچ اطلاعاتی در مورد یک زبان جدید نداشته باشید بهتر است در ابتدا فرض کنید که تمام حروف آن با احتمال یکسانی ظاهر می شوند و هیچ ارتباطی هم بین حروف وجود ندارد(بیشترین بی نظمی). به ترتیب که اطلاعات بیشتری کسب می کنید می توانید مدل خود را بروز کنید. در این پروسه ما قدم های محتاطی بر میداریم همیشه ساده ترین مدل ها که دارای بیشترین آنتروپی(=بی نظمی) هستند را انتخاب می کنیم. به همین دلیل است که توزیع نرمال بسیار محبوب است زیرا توزیع نرمال ساده ترین مدل یا مدلی با بیشترین آنتروپی، با دانستن فقط میانگین و واریانس داده هاست. البته قطعا حدس زده اید مدلی که مثلا بتواند زبان را توصیف کند بسیار پیچیده تر از یک توزیع نرمال است.
بیشترین آنتروپی و کوتاه ترین برنامه در واقع دو روی یک سکه اند(از لحاظ ریاضی میتواند ثابت کرد که آنها خواص مشابهی دارند). ما شاید نتوانیم تصور کنیم که چطور می شود برنامه ای ساخت که دنباله جملات یک زبان را تولید کند یا یک ویدیوی واقعی درست کند اما درک آن از طریق توزیع احتمالاتی و آنتروپی ساده تر است.
پس بیایید حرفهایمان را یکپارچه تر کنیم. جدول زیر شاید به این کار کمک کند:
اینجا بخشی است که شاید با شهود روزمره همخوانی نداشته باشد. اگر توجه کرده باشید گفتیم که آنتروپی یا بی نظمی دنباله های ساده پایین است و بی نظمی دنباله های پیچیده مانند یک دنباله از اعداد تصادفی بسیار بالا است. به این ترتیب در این چارچوب بی نظمی و پیچیدگی یک مفهوم دارند. برخلاف تصور روزمره که پیچیدگی را با نظم یکی میگیریم پیچیدگی در این جا کاملا مترادف با بی نظمی است.
اما سوال مهمی که هنوز جواب نداده ایم: ما از کجا توزیع احتمالاتی که داده ها رو تولید میکنند پیدا کنیم؟ قبل از هر چیز توجه کنید که ما همواره در مورد منبع تولید داده سخن گفتیم و نه خود داده. به عبارتی ما همواره با یک فرآیند تولید داده ها سر و کار داریم که عنصری از تصادف را همراه با خود دارد. مثلا فرآیند تصادفی بارش باران. فرآیند تصادفی زبان، فرآیند تصادفی تصویر چهره ها.
دقت کنید در اینجا ما با برنامه ای سر و کار نداریم که خیلی سرراست مثل دنباله 001 ها که قبلا داشتیم بتواند داده ها را تولید کند. اینجا با یک برنامه احتمالاتی یا به عبارتی توزیع احتمال سر و کار داریم. وقتی با پدیده های طبیعی مثل زبان یا تصاویر و ویدیو و غیره سر و کار داریم فقط با توزیع های احتمالاتی سروکار داریم. و در این موارد فقط می توانیم آماره هایی را مانند میانگین و واریانس یا کواریانس درمورد داده ها جمع آوری کنیم. مثلا میانگین و واریانس تعداد حروف آ در متون فارسی. باید دقت کنید که در مورد زبان موضوع پیچیده است چون حتی اگر بدانید احتمال تک تک حروف چقدر است باز هم باید به این نکته توجه کنید که باید بدانید احتمال آمدن هر حرفی بعد از هر حرف دیگری چقدر است و حتی ارتباط بین سه حرف و الخ را بدانید. به عبارتی کواریانس یا آماره های دو به دو هم مهم می شوند.(برای ویدیو و صوت هم خودتان فکر کنید)
با این اوصاف حالا چه توزیع(=مدل) احتمالاتی بهتر می تواند مثلا دنباله حروف را توضیح دهد؟ دقیقا مثل قبل، مدلی که تعداد فرضیات کمتری داشته باشد یا به عبارتی، ساده تر باشد. اما اگر بخواهیم این را به آنتروپی ترجمه کنیم مدلی ارجح تر است که دارای بیشترین آنتروپی(=بی نظمی) باشد. چون اگر نظمی در داده ها پنهان باشد به صورت اتوماتیک آنتروپی(=بی نظمی) آن را کمتر می کند. اگر شما هیچ اطلاعاتی در مورد یک زبان جدید نداشته باشید بهتر است در ابتدا فرض کنید که تمام حروف آن با احتمال یکسانی ظاهر می شوند و هیچ ارتباطی هم بین حروف وجود ندارد(بیشترین بی نظمی). به ترتیب که اطلاعات بیشتری کسب می کنید می توانید مدل خود را بروز کنید. در این پروسه ما قدم های محتاطی بر میداریم همیشه ساده ترین مدل ها که دارای بیشترین آنتروپی(=بی نظمی) هستند را انتخاب می کنیم. به همین دلیل است که توزیع نرمال بسیار محبوب است زیرا توزیع نرمال ساده ترین مدل یا مدلی با بیشترین آنتروپی، با دانستن فقط میانگین و واریانس داده هاست. البته قطعا حدس زده اید مدلی که مثلا بتواند زبان را توصیف کند بسیار پیچیده تر از یک توزیع نرمال است.
بیشترین آنتروپی و کوتاه ترین برنامه در واقع دو روی یک سکه اند(از لحاظ ریاضی میتواند ثابت کرد که آنها خواص مشابهی دارند). ما شاید نتوانیم تصور کنیم که چطور می شود برنامه ای ساخت که دنباله جملات یک زبان را تولید کند یا یک ویدیوی واقعی درست کند اما درک آن از طریق توزیع احتمالاتی و آنتروپی ساده تر است.
پس بیایید حرفهایمان را یکپارچه تر کنیم. جدول زیر شاید به این کار کمک کند:
معیار هایی که هر مدل با استفاده از آنها کار میکند در واقع بایاس های مدل هستند. یادتان باشد هیچ دلیل قابل اثباتی برای این بایاس ها وجود ندارند. آن ها روش هایی هستند که با آن ها ما جهان خود را قابل فهم می کنیم. قواعدی که الگوزدگی مغز ما را در برخورد با دنیای بیرون نشان می دهند.
Forwarded from زانکو (Javad Amirian)
سیستم GAN چیست؟
(برای مطالعه باید دانش کافی از هوش مصنوعی داشته باشید)
سیستم های GAN یا Generative Adversarial Networks یک سیستم بسیار جدید و کاربردی در هوش مصنوعی است که در سال 2014 توسط یان گودفیلوی 29 ساله و دانشجوی سابق استنفورد ابداع شد.
یکی از محققان واحد هوش مصنوعی فیسبوک گفته که GAN باحالترین ایده هوش مصنوعی در 10 سال اخیر است!
اگر بخواهیم دقیقتر بگوییم، این سیستم از دو شبکه مجزا تشکیل شده که یکی "تولید کننده" یا به اختصار G نام دارد و دیگری "تشخیص دهنده" یا D.
بطور خلاصه و مفید:
شبکه G یک سیگنال معنی دار مانند یک تصویر، یک یک صوت یا ... را تولید می کند،
و شبکه D هم باید تشخيص دهد این خروجی «اصل» است یا خیر (یعنی این تصویر یا صوت شبیه یک تصویر یا صوت واقعی هست یا نه).
بیایید با یک مثال پیش برویم:
فرض کنید G بجای چیزهای مزخرف و پیچیده (یعنی سیگنال) یک دستگاه اتوماتیک برای تولید شراب است! به این دستگاه هر ماده ای که برای تولید انواع شراب لازم است از قبل داده شده مثل: انگور، سیب، آلبالو، انواع مخمرها، ...
و وظیفه آن فقط یافتن روش و فرمول مناسب برای استخراج شراب است.
اما D در عوض یک شراب شناس قهار است، که یک لیوان مایعات را (از G) گرفته تست می کند و می تواند بگوید که این مایع شراب است یا نه.
اما او این مهارت را چگونه فرا گرفته؟ ما با در اختیار قرار دادن چندین مدل شراب اصل به او یاد داده ایم که شراب اصل چیست.
در حقیقت ایده کار همینجاست: ما به G نه تنها هیچ فرمولی را یاد نمی دهیم که حتی هیچ شرابی را به او نشان نمیدهیم، که او بتواند ویژگی های آن را یاد بگیرد و کپی برداری کند، او فقط از طریق سعی و خطا و پاسخی که از D دریافت می کند یاد خواهد گرفت که چه چیزی را تولید کند و نهایتا به فرمولهای ساخت شراب برسد. و نهایتا بتواند D را متقاعد کند که او هم شرابساز است.
اما نوآوری این سیستم در کجاست؟
در حقیقت نوآوری سیستم این است که ما میتوانیم D را با طیف شرابهای «متنوع» آشنا کنیم (و نه فقط یک نوع شراب)، در نتیجه G نه فقط یک مدل شراب شبیه شراب های قبلی که حتی شراب هایی جدید می آفریند که تا بحال هیچ ساقی ای بلد نبوده!
بعبارت دیگر تنها یک جواب درست وجود ندارد و در عوض «طیف قابل قبول»ی از جوابها وجود دارد.
حالا مثال عملی تر تولید «چهره انسان جذاب» است! بدون اینکه بخواهیم فرمولی برای یک چهره جذاب تعریف کنیم. ما این کار را با نشان دادن تعدادی عکس از چهرههای جذاب (بقولی سلبریتی) به D انجام میدهیم. نتایج شگفت انگیز هستند.
(اگر خیلی خوب متوجه نشدید، حتما من خیلی بد توضیح دادم، اما حدقل از چند تا از معجزههای این نوآوری که در پایین این پست میگذارم لذت ببرید)
bit.ly/2AL104G
جواد امیریان
(برای مطالعه باید دانش کافی از هوش مصنوعی داشته باشید)
سیستم های GAN یا Generative Adversarial Networks یک سیستم بسیار جدید و کاربردی در هوش مصنوعی است که در سال 2014 توسط یان گودفیلوی 29 ساله و دانشجوی سابق استنفورد ابداع شد.
یکی از محققان واحد هوش مصنوعی فیسبوک گفته که GAN باحالترین ایده هوش مصنوعی در 10 سال اخیر است!
اگر بخواهیم دقیقتر بگوییم، این سیستم از دو شبکه مجزا تشکیل شده که یکی "تولید کننده" یا به اختصار G نام دارد و دیگری "تشخیص دهنده" یا D.
بطور خلاصه و مفید:
شبکه G یک سیگنال معنی دار مانند یک تصویر، یک یک صوت یا ... را تولید می کند،
و شبکه D هم باید تشخيص دهد این خروجی «اصل» است یا خیر (یعنی این تصویر یا صوت شبیه یک تصویر یا صوت واقعی هست یا نه).
بیایید با یک مثال پیش برویم:
فرض کنید G بجای چیزهای مزخرف و پیچیده (یعنی سیگنال) یک دستگاه اتوماتیک برای تولید شراب است! به این دستگاه هر ماده ای که برای تولید انواع شراب لازم است از قبل داده شده مثل: انگور، سیب، آلبالو، انواع مخمرها، ...
و وظیفه آن فقط یافتن روش و فرمول مناسب برای استخراج شراب است.
اما D در عوض یک شراب شناس قهار است، که یک لیوان مایعات را (از G) گرفته تست می کند و می تواند بگوید که این مایع شراب است یا نه.
اما او این مهارت را چگونه فرا گرفته؟ ما با در اختیار قرار دادن چندین مدل شراب اصل به او یاد داده ایم که شراب اصل چیست.
در حقیقت ایده کار همینجاست: ما به G نه تنها هیچ فرمولی را یاد نمی دهیم که حتی هیچ شرابی را به او نشان نمیدهیم، که او بتواند ویژگی های آن را یاد بگیرد و کپی برداری کند، او فقط از طریق سعی و خطا و پاسخی که از D دریافت می کند یاد خواهد گرفت که چه چیزی را تولید کند و نهایتا به فرمولهای ساخت شراب برسد. و نهایتا بتواند D را متقاعد کند که او هم شرابساز است.
اما نوآوری این سیستم در کجاست؟
در حقیقت نوآوری سیستم این است که ما میتوانیم D را با طیف شرابهای «متنوع» آشنا کنیم (و نه فقط یک نوع شراب)، در نتیجه G نه فقط یک مدل شراب شبیه شراب های قبلی که حتی شراب هایی جدید می آفریند که تا بحال هیچ ساقی ای بلد نبوده!
بعبارت دیگر تنها یک جواب درست وجود ندارد و در عوض «طیف قابل قبول»ی از جوابها وجود دارد.
حالا مثال عملی تر تولید «چهره انسان جذاب» است! بدون اینکه بخواهیم فرمولی برای یک چهره جذاب تعریف کنیم. ما این کار را با نشان دادن تعدادی عکس از چهرههای جذاب (بقولی سلبریتی) به D انجام میدهیم. نتایج شگفت انگیز هستند.
(اگر خیلی خوب متوجه نشدید، حتما من خیلی بد توضیح دادم، اما حدقل از چند تا از معجزههای این نوآوری که در پایین این پست میگذارم لذت ببرید)
bit.ly/2AL104G
جواد امیریان
Medium
GAN — What is Generative Adversary Networks GAN?
To create something from nothing is one of the greatest feelings, ... It’s heaven.