MatlabTips
892 subscribers
462 photos
72 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
جدا کردن بخش های مختلف موسیقی در پایتون (TF)

هفته پیش Deezer یکی از کدهای بسیار جالب خود به نام spleeter را اپن سورس و در دسترس همگان قرار داد که با آن می توانید هر آهنگی را به اجزای سازنده آن مانند صدای خواننده(ووکال) صدای گیتار پیانو و غیره تقسیم کنید!!(ساخته شده بر اساس تنسرفلو)

من این کد را برای آهنگ های مختلف امتحان کردم و می توان گفت برای همه موسیقی ها به یک اندازه خوب جواب نمیدهد. موسیقی های پاپ جدید که دستکاری زیادی می شوند نتایج خوبی ندارند ولی موسیقی های قدیمی تر بهتر جواب می دهند. یک نمونه اینجا گذاشته ام.
Audio
فایل اصلی (فایل ورودی)
Audio
فقط صدای خواننده (خروجی ۱)
Audio
فقط موسیقی (خروجی ۲)
🔵آزاد کردن غول از قفس🔵

امروز بالاخره OpenAI بزرگترین مدل زبانی خود را که بالغ بر 1.5 میلیارد پارامتر (حدود سه گیگابایت) است را منتشر کرد. این همان مدل زبانی ای بود که زمان خود (حدود یکسال پیش) آنقدر قدرتمند جلوه کرد که جنجال زیادی به پا کرد و به همین خاطر OpenAI قدری محتاطانه عمل کرد و مدل اصلی را منتشر نکرد بلکه یک مدل کوچکتر 77 میلیون پارامتری را منتشر کرد.

براساس داکیومنت OpenAI:
1- انسان ها خروجی های GPT-2 را بسیار متقاعد کننده می دانند! کیفیت متن تولید شده توسط این مدل بسیار بالاست طوری که افراد به خروجی های مدل از 10 امتیاز 6.72 را می دهند.

2- مدل GPT-2 می تواند برای سو استفاده تنظیم شود: پژوهش های CTEC نشان داده است که GPT-2 می تواند برای حداقل چهار مقصد شوم مورد سو استفاده قرار گیرد: برترپنداری نژاد سفید، مارکسیسم، اسلامگرایی جهادی و آنارشیسم. به این طریق که می توان اخبار و متن های جعلی با هدف پروپاگاندا و تغییر افکار عمومی فقط با این مدل ساخت و به مردم داد! (دقت کنید مساله این نیست که انسان هم می تواند این کار را انجام دهد مساله این است که ماشین می تواند حجم غیر قابل تصوری از این متون را تولید کند طوری که تمام اینترنت را آلوده و همه چیز را بهم بریزد)

3- تشخیص متن های تولیدی از متن واقعی تولید شده توسط انسان چالش برانگیز است. بهترین روش های یادگیری ماشین تنها دقتی حدود 96 درصد برای تشخیص متن جعلی تولید شده توسط این مدل از متن انسانی دارند که از دید OpenAI کافی نیست.

4- هیچ گزارشی از سو استفاده از این مدلهای کوچکتر تاکنون دیده نشده است! هیچ ردی از استفاده از این مدل برای ایجاد اسپم یا فیشینگ برای دزدیدن اطلاعات وجود ندارد. با این حال OpenAI اعلام کرده است که نمی توان از این موضوع هم کاملا مطمئن شد.

و در پایان OpenAI ادعای عجیبی کرده و گفته ما این مدل را منتشر کرده ایم چون زمانبندی ما چنین بوده است! متن انتشار آنها گیج کننده ست چون در عین حال که می خواهد نشان دهد این کار را مسئولانه و با پژوهش های زیاد انجام داده است در عین حال کاملا اعتراف می کند که این مدل خطرناک و قابل استفاده در راستای اهداف تروریستی است. این مانند این است که شما سر کوچه اسلحه نذری کنید و بگویید ما می دانیم این ابزار خطرناک است ولی حواستان باشد که درست استفاده کنید! در آخر باید به شیطنت دیگر OpenAI اشاره کرد که روز پنج نوامبر (*) را برای انتشار مدلشان انتخاب کرده اند!

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

میخواهم دیدتان را به کد نویسی تغییر دهم. این تغییر چنان بنیادین است که ابتدا ممکن است اصلا متوجه منظورم نشوید. اول باید به این فکر کنیم که اساسی ترین تصوری که ما از برنامه نویسی داریم چیست؟ از یک دید کلی برنامه نویسی یک «ابزار» برای پیاده سازی یک ایده است. کدها یک ساختار «متعین» (deterministic) دارند که باعث می شود دقیقا همان چیزی باشند که ما می خواهیم. دقیقا مانند ساختن یک ابزار مکانیکی. شبیه به یک آسیاب قدیمی که نیروی آب را گرفته و با استفاده از تعداد بسیار زیادی اهرم ها و پیچ های چوبی و فلزی یک حرکت دیگر را ممکن می کند. از این دیدگاه خود برنامه نویسی چیز خاصی ندارد. در حالت خیلی ساده مثلا یک نیاز کاربر را جواب می دهد. مثلا حقوق ماهیانه را بر اساس ساعت ها محاسبه می کند یا اطلاعات شما را از دیتابیس می خواند. یا حتی می تواند یک بازی کامپیوتری عظیم مثل assassin's creed متشکل از میلیون ها خط کد باشد. در حالت پیچیده تر می تواند برای شبیه سازی یک پدیده فیزیکی مثلا انتقال حرارت استفاده شود و حتی در حالت بازهم پیچیده تر می تواند یک سیستم هوشمند برای پیشنهاد دادن محصول به مشتری یا تشخیص چهره باشد.
ممکن است بپرسید خب کد نویسی همین است دیگر. اما یک تفاوت اساسی وجود دارد تفاوتی که باعث می شود علوم پایه همچنان جذاب تر بمانند. علوم پایه مانند فیزیک و ریاضیات و زیست شناسی «راز آمیز» اند به این معنا که مسایل ناشناخته ای دارند که به ما رازهای پنهان هستی را نشان داده اند یا خواهند داد. علوم پایه از یک تمایل شدید بشر برای کشف و آگاهی می آیند. چیزی فرای پدیدارها! چیزی که تعامل ما به جهان هستی را عجیب و جالب می کند. اما کد نویسی ظاهرا در نهایت فقط یک ابزار برای رسیدن به آن اهداف است. اما ایا واقعا چنین است؟ نه اینطور نیست کد هم راز آمیز است!

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

بهترین روش بررسی این موضوع بررسی آن از لحاظ تاریخی ست. کامپیوتر ها از خلا بوجود نیامدند. کامپیوتر ها حتی فقط از روی نیاز بوجود نیامدند. نظریه محاسبه بخشی از ریاضیات است که از یک برنامه معروف سر بر آورد: برنامه هیلبرت. برنامه ای که می خواست تمام ریاضیات را بر بنیان های محکمی استوار کند. ریشه های اصلی چنین خواستی بحران در پایه های ریاضیات بود! بحران هایی که از تناقض های زیادی خبر می داد و نیاز به یک فندانسیون قدرتمند برای بزرگترین دستاورد بشر یعنی ریاضیات را لازم می کرد. هیلبرت ریاضیدان آلمانی در صدد ایجاد سیستمی فرمال برای تمام بخش های ریاضیات بود. طوری که اثبات ها و حقایق ریاضی همه به صورت کاملا «متعین» با یک ابزار که بعدا در قالب کامپیوتر تیوریزه و متجسم شد قابل دسترسی باشند. پافشاری بر این سیستم منجر به رشد انفجار گونه منطق در اوایل قرن بیستم شد. اصول برنامه هیلبرت عبارت بودند از:
۱- یک فرمال سازی برای تمام ریاضیات.به عبارت دیگر تمام ریاضیات باید به یک زبان فرمال و دقیق (چیزی بسیار شبیه به زبان های برنامه سازی کنونی) بیان شود.
۲- تمامیت: تمام حقایق ریاضیات باید در داخل این چارچوب به صورت کاملا مکانیکی قابل اثبات باشند(دقیقا مانند یک کد).
۳- سازگاری:‌ هیچ راهی برای اثبات دو گزاره متناقض در داخل سیستم وجود نداشته باشد.
۴- تصمیم پذیری: باید یک الگوریتم یا رویه قدم به قدم برای تصمیم گیری درستی و نادرستی هر عبارت ریاضی وجود داشته باشد.

این دیدگاه به ریاضیات آن را مانند یک ماشین بسیار بزرگ با تعداد زیادی دنده و چرخ می بیند که همه ی بخش های آن سازگار و دقیق هستند و حرکت هر بخش با بخش های دیگر هماهنگ شده است. چنین چیزی بسیار شبیه به یک کامپیوتر امروزی به نظر می رسد. اما برنامه هیلبرت شکست خورد و این شکست سرآغاز دیدگاه جدیدی نسبت به سیستم های فرمال و محاسبه بود. محاسبه بر خلاف معنی لغوی آن که «تکرار پذیر، بی محتوا، ساده و متعین» است یکی از پیچیده ترین رازهای هستی ست که آن را کنار بقیه راز ها قرار می دهد.
ادامه قسمت بعد
MatlabTips pinned Deleted message
‏شاخه‌ی هم‌خون جدامانده‌ی من
آسمان تو چه رنگ‌ست امروز؟
آفتابی‌ست هوا
یا گرفته‌ست هنوز؟
من درین گوشه
که از دنیا بیرون‌ست
آسمانی به سرم نیست
از بهاران خبرم نیست
آنچه میبینم
دیوار است

#IranProtests
این روزها حالم خوب نیست! از همه چیز احساس بدی دارم. از جوانی ای که در راه اعتراض صرف کردیم. از حس امید و نا امیدی ای که آنقدر پشت سر هم داشتیم که نسبت به آن بی حس شدیم. نسبت به شرایطی که انگار در آن حبس شدیم. نسب به خودم که از آن شرایط فرار کردم به امید آنکه حداقل خودم را نجات دهم. نسبت به همه آن کسانی که تصمیم گرفتند یک هفته ۸۰ میلیون را مانند یک پادگان تنبیه کنند و هر آنکه در داخل و خارج است را به یک چوب برانند تا «شرایط را کنترل» کنند.

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

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

یکی از دشوار ترین مسایل در بخش های مختلف مهندسی و علوم پایه حسابان برای متغیر های برداری و ماتریس است. کسی که چند بار هسین و گرادیان را محاسبه کرده است متوجه این موضوع شده است. یک ابزار آنلاین برای این منظور وجود دارد که فوق العاده ساده است و شبیه آن را در متلب یا متمتیکا یا بقیه نرم افزارها پیدا نکردم*
https://www.matrixcalculus.org/

*‌اگر شما می شناسید به من پیام بدهید
برای کسانی که بر روی ژنتیک و پروتئین ها کار میکنند، ابزار مبتنی بر یادگیری عمیق با استفاده از پایتورچ و API فوق العاده huggingface به تازگی منتشر شده است که برای بایوانفورماتیک عالی ست.

https://github.com/songlab-cal/tape?files=1
Forwarded from اتچ بات
“شتاب کردم که آفتاب بیاید
نیامد
دویدم از پیِ دیوانه‌ای که گیسوانِ بلوطش را به سِحرِ گرمِ مرمرِ لُمبرهایش می‌ریخت
که آفتاب بیاید
نیامد
به روی کاغذ و دیوار و سنگ و خاک نوشتم که تا نوشته بخوانند
که آفتاب بیاید
نیامد
چو گرگ زوزه کشیدم، چو پوزه در شکمِ روزگارِ خویش دویدم
شبانه روز دریدم، دریدم
که آفتاب بیاید
نیامد
چه عهدِ شومِ غریبی! زمانه صاحبِ سگ؛ من سگش
چو راندم از درِ خانه ز پشت بامِ وفاداری درون خانه پریدم که آفتاب بیاید
نیامد
کشیده‌ها به رُخانم زدم به خلوتِ پستو
چو آمدم به خیابان
دو گونه را چُنان گدازه‌ی پولاد سوی خلق گرفتم که آفتاب بیاید
نیامد
اگرچه هق هقم از خواب، خوابِ تلخ برآشفت خوابِ خسته و شیرین بچه‌های جهان را
ولی گریستن نتوانستم
نه پیشِ دوست نه در حضور غریبه نه کنجِ خلوتِ خود گریستن نتوانستم
که آفتاب بیاید
نیامد”
― رضا براهنی, خطاب به پروانه ها و چرا من دیگر شاعر نیمایی نیستم
This media is not supported in your browser
VIEW IN TELEGRAM
همیشه نیاز به حل مساله با پیچیده ترین روش ها نیست، گاهی یک ایده ساده سریع تر و کاراتر از یک الگوریتم پیچیده ست

مرتب سازی میوه بر اساس اندازه
کتابی که اینجا گذاشته ام یک کتاب رایگان و فوق العاده برای یادگیری ریاضیات لازم برای یادگیری ماشین است. این کتاب را هم می توانید از اول بخوانید یا صرفا به عنوان یک کتاب مرجع از ان استفاده کنید. ریاضیات آن از بسیار ساده تا متوسط است و تقریبا تمام ریاضیاتی که در یادگیری ماشین استفاده می شود را پوشش می دهد. این هم وب سایت این کتاب است. بر روی گیت هاب آن ها مثال هایی با پایتون هم دیده می شود که به تدریج به تعداد آن ها اضافه می شود.

https://mml-book.github.io/
mml-book.pdf
16.3 MB
درک توزیع بتا و دیریکله (خدا تاس بازی نمیکند خدا تاس ها را خلق می کند: توزیع دیریکله بخش اول)
(به زبان انگلیسی)

https://link.medium.com/dVUjIKRRy2
درک توزیع دیریکله (خدا تاس بازی نمی کند، خدا تاس ها را خلق می کند: توزیع دیریکله بخش دوم)
به انگلیسی

https://link.medium.com/4VyeFFxOD2
🍉فال امسال با پایتون🍉

اگرچه چند روزه از شب یلدا گذشته و من هم این مدت سرم شلوغ بود. اما تصمیم گرفتم کدی رو با شما به اشتراک بذارم که باهاش میتونید فال حافظ بگیرید.
برای استفاده نیاز به پایگاه داده گنجور دارید که اون رو هم اینجا آپلود کردم و حاوی تمام شعرهای شعرای فارسی زبانه (حدود ۱۰۰ مگابایت) و در sqlite3 هست. نیاز به نصب هیچ کتابخانه ی خاصی نیست چون از دو کتابخانه sqlite3 و random‌ استفاده کردم که هر دو در کتابخانه های اصلی پایتون هستند. فقط کافیه دیتابیس رو دانلود کنید و بذارید کنار کد و اجراش کنید! (به این ریپو سر بزنید چیزهای جالب تری در آینده میذارم توش که شامل تحلیل شعر فارسی با پایتونه!)

این هم کدها

این هم فال من. امیدوارم شادی هامون برای بقیه سال بیشتر بشه و زندگی روی خوشش رو بیشتر نشون بده!
This media is not supported in your browser
VIEW IN TELEGRAM
شبکه StyleGAN2 منتشر شد

تغییر در استایل با استفاده از شبکه های gan. اینجا بیشتر بخوانید
🧩مولوی پژوهی با تخصیص پنهان دیریکله (Latent Dirichlet allocation)🎲

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

برای شروع فرض کنید من می خوام یه ماشین بسازم که متن تولید کنه!‌ این ماشین بر اساس یه سری تنظیمات یه سری کلمه پرت می کنه بیرون! دقیقا پرت می کنه بیرون! یعنی هیچ نظم و ترتیب گرامری نداره! همین اول شاید بگید خوب این که خیلی مسخره ست چیزی که تولید میشه یه مشت چرت و پرته!‌ درسته ولی چون زبان خیلی چیز پیچیده ایه (شاید اصلا پیچیده ترین چیز توی دنیا!) مجبوریم یه ساده سازی خیلی عجیب غریب انجام بدیم و اون هم اینه که فرض کنیم هر متنی یه کیسه از کلماته! (bag of words).
حتی اگه همچین فرضی بکنیم باز هم همه متون شبیه هم نیستند! اگه موافق نیستید یه کیسه کلمات از توضیح المسایل آیت الله سیستانی و آثار محمود دولت آبادی رو درست کنید! کلمات توی این دو گروه و درصد تکرارشون خیلی با هم فرق دارن!

حالا فرض کنید هر متنی ملغمه ای از چند «موضوع» مختلفه! مثلا یه متن در مورد بحران زیست محیطی می تونه کمی به مسایل سیاسی بپردازه کمی در مورد علم باشه و کمی هم در مورد بوم شناسی! ایده اینه که هر متنی یه درصدی از چند موضوع مختلفه! مثل یک سالاد. اما از طرفی باید تعریف کنیم اصلا منظورمون از «موضوع» چی هست. موضوع رو میتونیم یه توزیع از کلمات فرض کنیم. یعنی مثلا اگه تمام کلمات دیکشنری رو در نظر بگیریم اگه موضوع ما سیاسی باشه کلمه «انتخابات» پر اهمیت تره تا مثلا کلمه «شکلات»!

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

همین روش ساده لوحانه فوق العاده عمل میکنه! تنها نکته ای که میمونه اینه که روشی پیدا کنیم که اون نسبت ها (نسبت موضوعات و نسبت کلمه ها در هر موضوع) رو پیدا کنیم که کار خود الگوریتمه و توضیح نمیدم.

نکته آخر اینکه کشف موضوعات تماما اتوماتیک انجام میشه. یعنی اون موضاعاتی که کشف میشن لزوما منطبق با یک موضوع قابل فهم (مثلا ورزشی، سیاسی و غیره)‌نیستند! اما قطعا یه سری همبستگی بین کلماتشون هست! و اینکه کلا این روش کاری نداره شما روی چینی فارسی یا انگلیسی کار می کنید، چون اصلا کاری به گرامر و این مسخره بازی ها نداره!
کاری که اینجا انجام دادم نمایش کلمات مهم از متن به صورت یک شبکه ست. قسمت هایی که خوشه شکل گرفته نشون دهنده یک موضوعه! بعضی هاشون تقریبا معنا دار هستند! مثلا یه خوشه جدا افتاده کلمات عربی رو نشون میده! همچنین یه خوشه توی فاز «ساغر» و «شراب» و «ساقی» و این کارهای خاک بر سریه! یه خوشه «عشق» و «عاشقان» و «شمس» و «آتش» و «تن» هست. کلمات «عشق» و «جهان» و «باغ» و «مه» نقش کلیدی توی ارتباط خوشه ها با هم دارن. چیزهای عجیب و غریب تری هم توش هست مثلا ارتباط نزدیک «زن» و «مکر» (این ها به من ربطی نداره برید از مولوی بپرسید!)
در نهایت اینکه باز هم تاکید کنم همه این ها با یک روش ریاضی به صورت خودکار کشف شده (یعنی یک درصد فکر کنید من تمام آثار مولانا که ۸۹۶ هزار کلمه ست رو بخونم و بعد اینها رو بهم بچسبونم!!)
چندین خروجی با تغییر توی تنظیمات اون ماشین می تونید بگیرید. این چیزها رو میشه روش مطالعه کرد و خروجی های بهتر و بهتری تولید کرد که اگر وقتی شد بیشتر روش کار میکنم!


دو نکته: رنگ های به سمت طیف آبی تر نشان دهنده تعداد بیشتر ارتباطات اون کلمه با بقیه کلماته و اندازه هر کلمه نشان دهنده اهمیت اون کله توی موضوع خودشه

کدها