🔍 معماری RNN چهار نوع اصلی دارد:
- One 2 One
- One 2 Many
- Many 2 One
- Many 2 Many: Sync , Async
📚 وقتی Sequence ای از داده ها داریم، باید از یجایی به قبل رو به داده های train اختصاص بدیم، و از یک جایی به بعد رو به داده های test اختصاص بدیم. در اینجا نباید نمونه ها رو shuffle کنیم زیرا ترتیب برای ما اهمیت دارد.
📌 داده ها رو باید در سه بعد به RNN بدیم. بعد اول تعداد نمونه ها، بعد دوم توالی یا Sequence ای است که میخوایم پشت سر هم رخ بده، بعد سوم تعداد متغیرهایی است که در اون توالی میخوایم داشته باشیم.
📈 در RNN ما وقتی Xt رو از کاربر میگیریم، میتونیم برای مثال nتا بلوک Sequence رو بصورت تکرار شونده پشت سر هم داشته باشیم. (تصویر بلوک در پست بعدی ارسال میشه)
🧮 برای حل مشکل فراموشی که در Simple RNN ها داشتیم، مدل Long Short Term Memory یا LSTM به وجود اومد. این مدل برای توالی های بلند مدت خیلی بهتر عمل میکند و اون ها رو حفظ میکند.
💭 از مشکلات LSTM بخاطر محاسبات سنگین میشه به پایین اومدن سرعت یادگیری و پیش بینی، و قاطی کردن الگوریتم اشاره کرد. اگر الگوریتم قاطی کنه یا vanish میشه یا explode رخ میده.
⭕️ برای حل مشکلات LSTM مدل GRU یا Gated Recurrent Unit به وجود اومد. مثل همون LSTM هست منتهی یکم ساده تر. هم سرعت بهتری داره هم پیچیدگی کمتری داره.
- One 2 One
- One 2 Many
- Many 2 One
- Many 2 Many: Sync , Async
📚 وقتی Sequence ای از داده ها داریم، باید از یجایی به قبل رو به داده های train اختصاص بدیم، و از یک جایی به بعد رو به داده های test اختصاص بدیم. در اینجا نباید نمونه ها رو shuffle کنیم زیرا ترتیب برای ما اهمیت دارد.
📌 داده ها رو باید در سه بعد به RNN بدیم. بعد اول تعداد نمونه ها، بعد دوم توالی یا Sequence ای است که میخوایم پشت سر هم رخ بده، بعد سوم تعداد متغیرهایی است که در اون توالی میخوایم داشته باشیم.
📈 در RNN ما وقتی Xt رو از کاربر میگیریم، میتونیم برای مثال nتا بلوک Sequence رو بصورت تکرار شونده پشت سر هم داشته باشیم. (تصویر بلوک در پست بعدی ارسال میشه)
🧮 برای حل مشکل فراموشی که در Simple RNN ها داشتیم، مدل Long Short Term Memory یا LSTM به وجود اومد. این مدل برای توالی های بلند مدت خیلی بهتر عمل میکند و اون ها رو حفظ میکند.
💭 از مشکلات LSTM بخاطر محاسبات سنگین میشه به پایین اومدن سرعت یادگیری و پیش بینی، و قاطی کردن الگوریتم اشاره کرد. اگر الگوریتم قاطی کنه یا vanish میشه یا explode رخ میده.
⭕️ برای حل مشکلات LSTM مدل GRU یا Gated Recurrent Unit به وجود اومد. مثل همون LSTM هست منتهی یکم ساده تر. هم سرعت بهتری داره هم پیچیدگی کمتری داره.
⭕️ اگر مقدار return sequence رو برابر True قرار بدیم، خروجی تمام تایمها رو به ما میده نه فقط تایم آخر.
❇️ وقتی که بخوایم RNN رو به dense وصل کنیم، یا یک خروجی باید بهش بدیم یا nتا خروجی که در این صورت باید اونها رو به TimeDistributedDense بدیم.
❇️ وقتی که بخوایم RNN رو به dense وصل کنیم، یا یک خروجی باید بهش بدیم یا nتا خروجی که در این صورت باید اونها رو به TimeDistributedDense بدیم.
📌 یکی دیگر از معماری های RNN، نوع Encoder-Decoder است. (حالتی از Many 2 Many است)
🔸 معماری sequence to sequence دو بلوک دارد. بلوک Encoder و بلوک Decoder.
📚 عنصر embedding در یادگیری عمیق، با استفاده از یکسری تکنیک ورودی رو به یک فضای برداری معنایی (vector) تبدیل میکند. کلماتی که از لحاظ معنایی نزدیک بهم باشند در فضای اقلیدسی نزدیک هم میافتند. این روش سرعت پایینی دارد. همچنین حجم بسیار زیادی از داده ها رو نیاز دارد.
🔸 معماری sequence to sequence دو بلوک دارد. بلوک Encoder و بلوک Decoder.
📚 عنصر embedding در یادگیری عمیق، با استفاده از یکسری تکنیک ورودی رو به یک فضای برداری معنایی (vector) تبدیل میکند. کلماتی که از لحاظ معنایی نزدیک بهم باشند در فضای اقلیدسی نزدیک هم میافتند. این روش سرعت پایینی دارد. همچنین حجم بسیار زیادی از داده ها رو نیاز دارد.
🟡 ترانسفورمرها (Transformers) یک Encoder-Decoder است که از Attension Mechanism استفاده میکنه.
🔵 مدل BERT نوعی از همین ترانسفورمرهاست که یک متن رو دریافت میکنه و تبدیلش میکنه به یک فضای مثلا 1024 بعدی. (به صورت معنایی اینکار رو انجام میده)
💭 در وبسایت huggingface.co افراد مختلف شبکه هایی رو که طراحی میکنند، آپلود میکنند.
▫️ از CNN 1D برای متون استفاده میشه.
🔵 مدل BERT نوعی از همین ترانسفورمرهاست که یک متن رو دریافت میکنه و تبدیلش میکنه به یک فضای مثلا 1024 بعدی. (به صورت معنایی اینکار رو انجام میده)
💭 در وبسایت huggingface.co افراد مختلف شبکه هایی رو که طراحی میکنند، آپلود میکنند.
▫️ از CNN 1D برای متون استفاده میشه.
⭕️ در مسائلی که پیچیدگی زیادی داریم، استفاده از elu به عنوان activation function پیشنهاد میشه.
✳️ روش های مختلفی برای Segmentation هست. یکی از معروف ترین روش ها، روشی به نام Segment anything می باشد.
🔸 مدل Segment Anything توسط شرکت فیسبوک ساخته شده. این مدل یک تصویر رو دریافت میکنه و با استفاده از encoder موجود در ترانسفورمر، تصویر رو به حالت embed تبدیل میکنه و با استفاده از masking قسمت های مختلف تصویر رو جدا میکنه.
✳️ روش های مختلفی برای Segmentation هست. یکی از معروف ترین روش ها، روشی به نام Segment anything می باشد.
🔸 مدل Segment Anything توسط شرکت فیسبوک ساخته شده. این مدل یک تصویر رو دریافت میکنه و با استفاده از encoder موجود در ترانسفورمر، تصویر رو به حالت embed تبدیل میکنه و با استفاده از masking قسمت های مختلف تصویر رو جدا میکنه.
✳️ معماری Multi Modal که زیر مجموعه Transformers ها هستند، وقتی استفاده میشن که ما چند جنس داده داشته باشیم. الگوریتم های زیر مجموعه Multi Modal میتونن رابطه ی بین دو جنس داده رو متوجه بشن (مثلا متن و تصویر).
💡 الگوریتم CLIP ارتباط بین تصاویر و متن رو میفهمه و مثالی از Multi Modal هاست.
📚 لایه Convolution Transpose برعکس لایه Covolution عمل میکنه. یعنی یک حالت فیلتر شده رو دریافت میکنه و تصویرش رو تحویل میده.
💡 الگوریتم CLIP ارتباط بین تصاویر و متن رو میفهمه و مثالی از Multi Modal هاست.
📚 لایه Convolution Transpose برعکس لایه Covolution عمل میکنه. یعنی یک حالت فیلتر شده رو دریافت میکنه و تصویرش رو تحویل میده.
🔍 در Docker دو مفهوم اولیه داریم، محفظه ها (Container) و Image ها. این Image ها معادل یه CD یا فایل ISO هستن که میتونیم روی سیستم عامل های مختلف باز کنیم و نصب کنیم. Container یک Image هست که بالا اومده و اجرا شده.
📝 انواع Image های آماده روی سایت hub.docker.com پیدا میشن.
📍 بالا آوردن یک Container از روی یک Image:
docker run image name
🗄 برای مشاهده Container هایی که اجرا کردیم:
docker ps
💭 برای توقف یک Container (پایین آوردن):
docker stop port
❇️ برای اجرای مجدد یک Container:
docker start port
❎ برای دیدن لیست Container های متوقف شده:
docker ps -a
⁉️ برای حذف یکی از Container های متوقف شده:
docker rm port
🧮 برای ساختن Image راه های مختلفی وجود داره که یکی از اونها استفاده از Dockerfile هست
📝 انواع Image های آماده روی سایت hub.docker.com پیدا میشن.
📍 بالا آوردن یک Container از روی یک Image:
docker run image name
🗄 برای مشاهده Container هایی که اجرا کردیم:
docker ps
💭 برای توقف یک Container (پایین آوردن):
docker stop port
❇️ برای اجرای مجدد یک Container:
docker start port
❎ برای دیدن لیست Container های متوقف شده:
docker ps -a
⁉️ برای حذف یکی از Container های متوقف شده:
docker rm port
🧮 برای ساختن Image راه های مختلفی وجود داره که یکی از اونها استفاده از Dockerfile هست
❤1👎1
Code_The_Hidden_Language_of_Computer_Hardware_and_Software_2nd_Edition.epub
22.8 MB
کتاب جالبیه، وقت داشتید بخونید
❤1
🔹 اهداف جبر خطی
⭕️ در این درس کمی بیشتر به بررسی مسائلی که قصد داریم حل کنیم میپردازیم و توضیح میدیم که جبر خطی چیه و چطوری میتونه به ما توی حل مسائل کمک کنه.
🔸 مسئلهی "کشف قیمت" برای شروع میتونه مناسب باشه. فرض میکنیم من دو بار به خرید رفتم و سیب و موز خریدم. بار اول من دو تا سیب و سه تا موز خریدم که قیمتشون شده هشت یورو (سیب را با a و موز را با b نمایش میدهیم).
2a + 3b = 8
▫️بار دوم که به خرید میرم، ده تا سیب و یک موز میخرم که قیمتشون میشه 13 یورو.
10a + 1b = 13
💭 حال کاری که باید انجام بدم، اینه که معادلات رو حل کنم تا قیمت سیب و موز رو بدست بیارم.
🔸حالا انواع مختلف و بسیاری از این خریدها با اقلام متفاوت وجود داره و اگر من بخوام همهی اون ها رو بصورت دستی حل کنم، خیلی سخت و زمانبر هست. بنابراین در حالت کلی ما میخوایم که یک الگوریتم کامپیوتری این کار رو برامون بصورت خودکار انجام بده.
🔹 مثالی که بالا برای خرید میوه و قیمت اون ها زدم، نمونهای از یک مسئلهی جبر خطی بود.
2a + 3b = 8
10a + 1b = 13
🟢 در این مثال ما ضرایب خطی ثابت رو داریم، اعداد 2 و 10 و 3 و 1. این اعداد ورودیهای a و b را به خروجیهای 8 و 13 مرتبط میکنند.
🟥 من به یک بردار [a,b] فکر میکنم که اون، قیمت سیب و موز رو توصیف میکنه. سپس اون به هزینه تبدیل میشه که در قالب بردار [13, 8] داریم. همچنین یک ماتریس داریم که در سطر اول (خرید اول) اعداد 2 و 3 رو داریم و در سطر دوم (خرید دوم) اعداد 10 و 1 رو داریم.
🔍 نوع دیگهای از مسائل که ما علاقمند به حل اون هستیم، برازش (تطابق) یک معادله برای برخی دادهها هستیم. در حقیقت با شبکههای عصبی و یادگیری ماشین ما میخواهیم که کامپیوتر نه تنها با معادله مطابقت داشته باشد، بلکه بفهمد از چه معادلهای نیز استفاده میکند.
📍 فرض کنیم دادههایی شبیه به این نمودار (در تصویر نمایش داده شده) داریم. این شبیه به یک نمودار توزیع جمعیت با یک میانگین و تنوع است. نوع دیگه از مسائلی که ما میخواهیم حل کنیم، اینه که چطوری مقدار بهینه پارامترها را در معادله پیدا کنیم تا خط قوسی نمودار را توصیف کند. بهترین اونها که داده رو با نمودار تطبیق میده.
#جبر_خطی #قسمت_اول #کالج_لندن
⭕️ در این درس کمی بیشتر به بررسی مسائلی که قصد داریم حل کنیم میپردازیم و توضیح میدیم که جبر خطی چیه و چطوری میتونه به ما توی حل مسائل کمک کنه.
🔸 مسئلهی "کشف قیمت" برای شروع میتونه مناسب باشه. فرض میکنیم من دو بار به خرید رفتم و سیب و موز خریدم. بار اول من دو تا سیب و سه تا موز خریدم که قیمتشون شده هشت یورو (سیب را با a و موز را با b نمایش میدهیم).
2a + 3b = 8
▫️بار دوم که به خرید میرم، ده تا سیب و یک موز میخرم که قیمتشون میشه 13 یورو.
10a + 1b = 13
💭 حال کاری که باید انجام بدم، اینه که معادلات رو حل کنم تا قیمت سیب و موز رو بدست بیارم.
🔸حالا انواع مختلف و بسیاری از این خریدها با اقلام متفاوت وجود داره و اگر من بخوام همهی اون ها رو بصورت دستی حل کنم، خیلی سخت و زمانبر هست. بنابراین در حالت کلی ما میخوایم که یک الگوریتم کامپیوتری این کار رو برامون بصورت خودکار انجام بده.
🔹 مثالی که بالا برای خرید میوه و قیمت اون ها زدم، نمونهای از یک مسئلهی جبر خطی بود.
2a + 3b = 8
10a + 1b = 13
🟢 در این مثال ما ضرایب خطی ثابت رو داریم، اعداد 2 و 10 و 3 و 1. این اعداد ورودیهای a و b را به خروجیهای 8 و 13 مرتبط میکنند.
🟥 من به یک بردار [a,b] فکر میکنم که اون، قیمت سیب و موز رو توصیف میکنه. سپس اون به هزینه تبدیل میشه که در قالب بردار [13, 8] داریم. همچنین یک ماتریس داریم که در سطر اول (خرید اول) اعداد 2 و 3 رو داریم و در سطر دوم (خرید دوم) اعداد 10 و 1 رو داریم.
🔍 نوع دیگهای از مسائل که ما علاقمند به حل اون هستیم، برازش (تطابق) یک معادله برای برخی دادهها هستیم. در حقیقت با شبکههای عصبی و یادگیری ماشین ما میخواهیم که کامپیوتر نه تنها با معادله مطابقت داشته باشد، بلکه بفهمد از چه معادلهای نیز استفاده میکند.
📍 فرض کنیم دادههایی شبیه به این نمودار (در تصویر نمایش داده شده) داریم. این شبیه به یک نمودار توزیع جمعیت با یک میانگین و تنوع است. نوع دیگه از مسائلی که ما میخواهیم حل کنیم، اینه که چطوری مقدار بهینه پارامترها را در معادله پیدا کنیم تا خط قوسی نمودار را توصیف کند. بهترین اونها که داده رو با نمودار تطبیق میده.
#جبر_خطی #قسمت_اول #کالج_لندن
p83-keshavA.pdf
47.2 KB
توی این مقاله بهمون میگه که بهتره چطوری یه مقاله رو بخونیم، روی کدوم بخشها تمرکز بیشتری کنیم و کدوم قسمتها رو کنار بذاریم.
Harvard_University_Template.pdf
1.4 MB
توی این فایل که توسط دانشگاه هاروارد تهیه شده، به خوبی توضیح میده چجوری یه رزومه آکادمیک قوی داشته باشیم یا cover letter خوبی بنویسیم.
اگه دنبال دیتاستی بودین که پیدا نمیکردید یا به هر دلیلی نمیشد اون رو از کگل دانلود کنید، کانال زیر میتونه جایگزین خوبی باشه👇🏼
https://news.1rj.ru/str/datasets1
https://news.1rj.ru/str/datasets1
Telegram
Kaggle Data Hub
Your go-to hub for Kaggle datasets – explore, analyze, and leverage data for Machine Learning and Data Science projects.
Admin: @HusseinSheikho || @Hussein_Sheikho
Admin: @HusseinSheikho || @Hussein_Sheikho
این کورس رباتیک دانشگاه پنسیلوانیا برای افرادی که علاقه دارن توی این حوزه کار کنن بنظرم جالب بود. مباحثی مثل کامپیوتر ویژن هم توی سیلابس دوره وجود داره و آموزش میدن.
https://www.coursera.org/specializations/robotics#courses
https://www.coursera.org/specializations/robotics#courses
How-to-write-a-great-research-paper.pdf
501.9 KB
📝 How to write a great research paper