De.coder
472 subscribers
459 photos
44 videos
191 files
302 links
Download Telegram
😁6
برنامه نویسا:
برنامه درست کار میکنه فقط نمیدونم چرا
حقیقت چند وقتیه که دارم تابع هدف پایان نامه رو مینویسم اما یک چیزی که برام شده فتح قله کوه اورست پیدا کردن تاخیر صفه. شاید خیلی ها از این قضیه سر در نیارن که مشکل چی می تونه باشه.
ببینید شما میتوانید به دو روش برای سیستم تون تاخیر صف بدست بیارید. مثلا اگر سیستم صفتون M/M/1 باشه یا هر مدل شناخته شده دیگه ای باشه خب خیلی راحته تنها باید از روش های ارزیابی کارایی استفاده کنید. این روش ها فرمول های شناخته شده داره که قابل استفاده است. از طرفی این مدل ها برای سیستم های زمان پیوسته پیشنهاد شده. هرچند با تعمیم دادن اون ها میشه زمان گسسته رو هم نوشت.
مثلا فرمول زیر برای تاخیر صف در مدل صف سیستم های M\G\1 است.

D_i (t) = Q(t) + X_n (t) - X_i (t)

تاخیر صف میشه جمع تاخیر وظایفی که در صف هستند + تاخیر وظیفه ای که در حال پردازش است منهای زمان ورودی وظیفه به صف.
یا مثلا در مدل صفی همچون M/M/1 اگر متوسط تعداد وظایف در صف را بخواهیم به دست بیارییم با استفاده از نظریه Little میشد به دست آورد.

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

برای همین چندتا از paper ها رو گشتم دیدم این مسئله ها رو به طور معمول با استفاده از نظریه کنترل حل میکنند نه روش های ارزیابی. در ادامه میخوام خیلی خلاصه در این باره صحبت کنم.
از نظر control theory سیستم ها به چند تا تقسیم میشوند. سیستم های خطی و سیستم های غیر خطی از همه معروف تر است. حالا این سیستم ها با گذر زمان و در طول اجرا شون از حالت های مختلفی عبور میکنند. ما میاییم حالاتی که سیستم از آن عبور میکنه رو بدست میاریم تا بتونیم تحلیل رفتار کنیم. شما سیستم را میتونید از چند منظر تحلیل رفتار کنید. به طور کلی یا قطعیت میخواهید یا عدم قطعیت میخواهید یا رفتارها را محدود میکنید و از نظر پایداری تحلیل میکنید.
تحلیل سیستم های غیر خطی مشکل تر از سیستم های خطی است. در سیستم های خطی ما میگوییم سیستم پایدار است اما در سیستم های غیر خطی میگوییم سیستم در فلان نقطه پایدار است. این نقطه رو نقطه تعادل یا equalibrium point میگویند.
نظریه کنترل از کلی نظریه های دیگر درست شده است. یکی از این نظریه ها که من جدیدا با اون آشنا شدم نظریه lyapunov است.
این نظریه هم برای سیستم های خطی کاربرد داره و هم غیر خطی. در واقع ایده این نظریه از فیزیک میاد. این نظریه خیلی تیریویال است و قابل درک.
این نظریه دو تا چالش اساسی داره. اول اینکه باید یک تابع لیاپونوو رو ما بدست بیاریم. این تابع تابع هدف مون هست. مثلا مصرف انرژی و... . پیدا کردن این تابع سخته چون تعداد این توابع خیلی زیاد هست. دومین مشکل هم چیزی هست به نام asymptatic stability. نظریه لیاپونوو شرط کافی برای پایداری را بیان میکنه نه لازم. بنابراین این نوع از پایداری باعث شده که چندین نظریه دیگه بیاد و نظریه لیاپونوو را تکمیل کنه. نظریه همچون stellar.

خوب فکر کنم توضیح درباره این تا همین جا کافیه. بنظرم این پروپوزال خیلی چیز جالبی داره سمتم میاره. برخی نظریه هایی که توی حل مسائل زمانبندی پیدا میکنم داره جالب تر میکنه کار رو :) چند وقت پیش هم با استاد خرسندی یکسری صحبت ها داشتم و ایشون نسبت به پایان نامه امیدوار بود که پتانسیل چاپ و مقاله کردن داره. همین اتفاق هم خواهد افتاد.
3
شبکه های deterministic یا DetNet
چند روز پیش وقتی نتایج ارشد اومد من رفتم یک نگاه به گذشته ام انداختم و اون مسیری که طی کردم رو یکبار دیگه مرور کردم.
یادمه قبل از انتخاب رشته ارشدم رفتم یکسری مباحث cutting edge توی حوزه شبکه های کامپیوتری دیدم و بشدت مجذوب اونها شده بودم. از اونجا بود که تصمیم قطعی گرفته بودم که برم شبکه بخونم. علاوه بر شبکه های نسل 6 و 5 من با یک نوع شبکه دیگه آشنا شده بودم که اساس و بنیان شبکه های نسل 5 و 6 است. اسم این شبکه DetNet یا Deterministic Networks بود. شاید اسمش غلط انداز باشه ولی تا آخر همراهیم کنید متوجه این شبکه ها چی هستند و چگونه به نسل 5 و 6 مربوط هستند.

سازمان IETF یا internet Engineering Task Force به همراه کار گروه IEEE 802.1 TSN یا گروه شبکه های حساس به تاخیر یک پروژه ای رو استارت زدن به نام DetNet. هدف از این پروژه اینکه بتونه تاخیر، تلفات بسته و jitter را نه در شبکه بلکه در مسیرهای موجود محدود کند. تازه این محدود کردن برای جریان های best-effort هستند که بنظرم یکی از شاهکار های این پروژه است. قبلا پستی درباره سرویس های مختلف توی شبکه گذاشته بودم اگر نمیدونید best-effort چیه اون پست رو بخونید. این پروژه بر روی شبکه هایی که تنها یک واحد مدیریت مسئول آن شبکه است (مثل شبکه های دانشگاهی) قابل اجرا است و تست شده.

جالبی قضیه اینجاست این شبکه ها تا سال 2025 نمی توانستند که از شبکه های بی سیم پشیتبانی کنند. چون شبکه های بیسیم رسانه انتقال غیرقابل پیش بینی داشتند. این یعنی اینکه اگر شبکه سیمی دانشگاه یک زیر شبکه بیسیم داشت اون زیر شبکه نمیتونست از سرویس DetNet پشتیبانی کنه. برای همین سال 2024-2025 سازمان IETF یک سندی منتشر کرد که توی اون معماری RAW رو برای شبکه های بیسیم این سرویس پیشنهاد داد. توی این سند بدون اینکه پروتکل جدیدی معرفی کنند سعی دارد تا شکست در reliability و Availability توی شبکه های بیسیم را نیز محدود کنند. یعنی مثلا میگه توی این شبکه های شما بیشتر از 20 بسته تلفات نداری. بنظرم خیلی جالبه چون شبکه های بیسیم کلی بلا میتونه سر بسته و فرکانس بیاد مثلا loss-path و shadowing و... . اما مسئله اینجاست که این روش تنها روی تعداد محدودی از روش های مدیریت رسانه قابل پیاده سازیه که یکی از اونها OFDMA. این یعنی شبکه های نسل 4 به بعد از DetNet پشتیبانی میکنند. بر همین اساس سرویس URLLC برای شبکه های نسل 5 به بعد معرفی شده است.

با تمام اینها شاید بگید که سرویس URLLC قبل از 2025 هم بوده پس چطور ممکنه 2025 تازه از بیسیم پشتیبانی میکنه؟ باید بگم که این سرویس خودش دو نوع داره یکی bounded و دیگری قطعی. نوع قطعی که استفاده میشه با استفاده از تخصیص منابع کار میکنه. نکته دیگر سرویس DetNet برای جریان های best-effort در نظر گرفته شده یعنی جریان هایی که فاقد اولویت هستند. نکته بعدی اینکه توی DetNet ما پروتکل جدیدی نداریم یا سرویس جدیدی نداریم. اما URLLC یک سرویس است که توسط شرکت 3GPP تعریف شده این شرکت میتونه استانداری داشته باشه که اصلا مبتنی بر DetNet نباشه. اینجوری flow charactrization که استفاده میکنه محدود و محیطی که فعالیت میکنه معلوم تر است. این یعنی IETF روی سرویس های IP و MPLS متمرکز است.

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

برای چه App هایی قابل استفاده است این سرویس؟ برای هر سرویس که حساس به تاخیر و زمان باشه یا synchronization توی آنها بسیار حیاتی است. شبکه های خودرویی، ویدئو و صدا، صنایع و...
این ها آخرین ارسال هایی هستند که توی این کار گروه انجام شده همونطور که میبیند الان اولین سند برای مقیاس پذیر کردن این شبکه ها رو ارسال کردند. البته اولینش سال 2022 برای شبکه های عظیم بوده و این نسخه بروز شده است که نیازمندی ها رو برای مقیاس پذیر کردن شبکه مشخص کرده.
پیشنهادی که دارم اینکه اگر علاقه مند شدید که درباره این شبکه ها مطالعه کنید بهترین مرجع اسنادی هستد که این کار گروه ها منتشر میکنند. حواستون باشه که چه نسخه ای رو مطالعه میکنید. من برای DetNet کتابی ندیدم چون نگشتم :))
کتاب روی این موضوع به درد نمیخوره چون این شبکه ها همچنان دارن بروز رسانی میشن و روشون کار میشه. چیزی نیست که بگیم تموم شده.
نکته از همه مهم تر اینکه باید یادبگیری چگونه اسناد یک کارگروه رو مطالعه کنید و بدونید هر نشانه یا علامت یا چهارچوب سند چجوریه. چون هر کار گروه یا سازمانی فرمت نوشتن سندش با بقیه متفاوت هست. البته هر کدومشون یک سند برای نحوه مطالعه دارن :))
ولی لازم نیست با خیلی ریز بشید که ببینید چی به چیه خیلی چیزا باید توی مسیر بهش برسید و لازم نیست از قبل دربارش بدونید.
😁6
De.coder
Photo
This media is not supported in your browser
VIEW IN TELEGRAM
نظرم درباره این 5 بازیکن
مصاحبه Michael Blackson
آقا این AI واقعا داره از کنترل خارج میشه.
همین الان استیون هاکینگ رو تو مسابقات فرمول یک دیدم😂😂
😁3
من قبلا توی این پست یکسری از فیلم های اموزشی و کانال یوتیوبی معرفی کردم برای هوش مصنوعی ولی امروز با یکی دیگه آشنا شدم که خدایی جاش خالیه توی اون پست.
آقای Geoff Hulten که یک کانال یوتیوبی داره پست هایی دربراه یادگیری ماشین کاربردی میزاره که توی اون بهتون یاد میده چجوری کد بزنید با پایتون. هر چند مطالبش برای 4 و 5 سال پیشه ولی بدرد میخوره. توضیحات و سبک آموزشی هم داره خیلی خوبه.
بنظرم مدرس خیلی خوبیه.
خودش یک سایت داره که بهرته بهش یک سری بزنید. این آقا تنها خودش مدرس هست بلکه یک کتاب هم نوشته و توی انتشاراتی Apress چاپ شده. نکته آخر هم اینکه تسلط به مطلبش هم خوبه.
این چند وقته با اینکه خیلی دوست دارم بنویسم و چیزای جدید بگم ولی خیلی درگیر پیاده سازی شبیه سازی و مقاله هستم برای همین وقت کافی ندارم که به دو تاش برسم.
ولی قراره یک پست بزارم که بچهایی که تازه واردن به دنیای کامیوتر یا حتی پیشکسوت هستند هم خیلی بهشون کمک میکنه.
3👎1
#حرف_دل
الان دو سه ماه دارم روی الگوریتم پایان نامه ام کار میکنم و این مدت خیلی رو مخم بود. من که میدونید از هوش مصنوعی سر رشته ای ندارم و کلا بیل میرم. این مدت اینقدر رو مخم بود که میتونم به جرعت بگم که شب و روزم یکی شده بود زمان از دستم در رفته بود. طوری که از خواب بلند میشدم و بهش فکر میکردم پایان نامه بود. تنها چیزی که توی این مدت حس میکردم عصبانیت و استرس بود که خدایا چرا هرکاری میکنم این converge نمیکنه. اینقدر تحت فشار بودم که برای مدتی تیک عصبی گرفته بودم. فکر میکردم که قرار نیست از پایان نامه ام دفاع کنم. اینقدر توی یوتیوب گشتم و دنبال فیلم آموزشی خوب بودم که یادبگیرم چی بچیه و باید چیکار کنم اما بی فایده بود و این الگوریتمه converge نمیکرد.
امروز بعد از مدت ها بالاخره الگوریتمم جواب داد و درست کار کرد. الان ساعت 11:25 که دارم براتون مینویسم آخرین آزمایش الگوریتمم رو انجام دادم و از خوشحالی و ذوقی که دارم نمیدونم چیکار میخوام بکنم.
اما فارغ از اینها تنها چیزی که باعث شد تا من خودم رو کنترل کنم و از کوره در نرم باشگاه بود.
الان هم کوهی از تجربه و دانش توی این زمینه پیدا کردم و بشدت برام ارزشمند هستند. واقعا راست میگن تا برای یک چیزی زحمت نکشی قدرش رو نمیدونی. بالاخره یکم امید بعد از مدت طولانی حس کردم.
راستش چند وقتی بود که داشتم به این فکر میکردم برم سربازی و من برای آکادمیک ساخته نشدم دکتری نمیخواد ادامه بدم. ولی در این لحظه که احساس قدرت میکنم فکر میکنم برای دکتری هم شرکت میکنم.
ایشالله تا روز دفاع بتونم الگوریتمم رو بیشتر optimize کنم تا بتونم بهترین نتیجه رو بگیرم ازش.
خدایا شکرت❤️
never back down never give up
21👏3
یکم زیاده گویی کردم ولی همین این ها خاطره میشه. راستش از کارهایی که روی اگوریتمم کردم یک فایل گزارش برای خودم ساختم که بالای 50 صفحه است. یعنی خودش یک پا پایان نامه است.😂
ولی میدونم وقتی بهش نگاه میکنم قراره حس خوبی بگیرم و خاطراتم رو مرور کنم.
10
کارت درسته سلطان
3👎3🤔1
De.coder
کارت درسته سلطان
عشقی حاجی
👎3😁32
😁8👎2
توی این پست میخوام از تجربه خودم توی نوشتن عامل بهتون بگم که شما بعدا به مشکل من دچار نشید.

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

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

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

نکته بعد تابع Loss
تابع پاداش بسیار اهمیت دارد. زمانی که عامل تصمیماتی را میگیرد یک انتظاری از خروجی دارد که بر اساس آن خروجی واقعی حاصل از تصمیش را مقایسه میکند. اینگونه با اختلافی که از حاصل واقعی با حاصل مورد انتظار گرفته میشود میتواند گفت چقدر درست عمل شده است. حال توابع loss انواع مختلفی داردند که اغلب بر اساس میانگین عمل میکنند. یک از این توابع MSELoss در pytorch است. ولی اگر نوبت به انتخاب تابع loss شد حواستون به outliers باشد. این داده ها بر روی میانگین بسیار تاثیر گذار هستند و باعث میشود که الگوریتم دیرتر همگرا شود. این تابع صرفا به عامل میگوید که چقدر خوب عمل کرده است.

نکته بعد hyper parameters
این پارامتر ها شامل GAMMA و Leraning Rate و training و epsilone decay میشود. تنظیم این گارامتر ها بسیار مهم هست. برای تنظیم اینها باید محیط را به طور کامل درک کرده باشید میزان تصادفی بودن محیط و میزان آینده نگری سیستم نیز بسیار مهم هستند. با این ها میتوان سرعت و میزان دقت در انتخاب سیاست مناسب را تنظیم کرد. یکی دیگر از این موارد برای DQN میتواند اندازه بافر و اندازه بچ باشد. با استفاده از این دو میتوان میزان استفاده از تجربه گذشته را تعیین کرد. چیزی که بسیار مهم هست رابطه بین این پارامتر ها با یکدیگر است. باید بدونید اگر یک چیزی را کم کردید دیگری را چقدر بیشتر کنید.

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

بازه تنظیم وزن ها
اما بیشتر مشکلاتی که بچه ها ممکنه درباره آن اطلاع نداشته باشند بازه تغییر وزن در عامل است. عامل DQN وزن های شبکه خود رو در بازه o تا 1 در نظر میگیرد. این یعنی شما باید حالات سیستم را علاوه بر نرمال باید scale هم بکنید. اینگونه میتونید حالات درست را به عامل نشان دهید و عامل بر اساس آن ها شبکه خود را تمرین دهد. اینجوری وزن ها به درستی در بازه 0 و 1 افزایش و کاهش میابد. از همه مهم تر آن است که عامل باید نرمال سازی و scale کردن را در هر اجرا به صورت پویا انجام دهد.

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

نتیجه آخر هوش مصنوعی درد سر زیاد داره استفاده نکنید😂
👍1
خیلی وقت هست که هیچ پست شبکه ای نذاشته بودم.
توی چند مقاله ای که جدیدا داشتم میخوندم و منابعش رو دیدم یکسری از کتابها به چشمم خورد که توی این پست یکیشون رو معرفی میکنم که خیلی جاها دیدم و کاربردیه.
کتاب wireless Device to Device Communication and Networks هست که سال 2011 نوشته شد. این کتاب توی مقالات زمانبندی رایج هست.
یادمه وقتی درس شبکه های بیسیم با استاد خرسندی داشتم ایشون یکسری مباحث از این کتاب رو هم استفاده کرده بود. البته زمانی که دکتر راستی هم عضو هیئت علمی امیرکبیر بودند یک درس اختصاصی برای شبکه های سلولی نسل 5 داشتند که ایشون هم توی ارجاعات اسلاید هاشون از این کتاب استفاده کرده بود.

این کتاب میاد بر روی مدل های کانال بین دستگاه ها صحبت میکنه. مدل های کانال این دستگاه ها را به صورت یک کانال بی سیم مستقیم بین دستگاهی در نظر میگیره که درباره قدرت دریافت کانال و نویز و تداخلات در این کانال ها بحث میکند.
مباحث این کتاب ابعاد مختلف دیگری رو هم در برمیگیره. درباره نحوه مدل کردن کانال با استفاده از تئوری های بهینه سازی، پیدا کردن راه حل آنها، امنیت این کانال ها ، مدیریت منابع فرکانسی در روش های مختلف MA در انواع آنتن ها صحبت میکنه.
راستش مباحثی که پوشش میده خارج از حوصله این پست هست چون زیاد هستند. اگر علاقه مند بودید که توی حوزه شبکه های بیسیم، IoT و انواع شبکه هایی همچون IoV و MEC فعالیت کنید و پژوهش ها را دنبال کنید بنظرم این کتاب نقطه حیاتی برای شروع هست.

بنظرم یکی از نقطه ضعف های شدیدی که کامل از این کتاب به چشم میخوره اول اینکه دیدگاه آموزشی آن کم هست یعنی نمیشه به عنوان کتابی مستقل معرفیش کرد زیرا مباحثی که داره در بعضی قسمت ها پیشرفته میشه و اگر خواننده اطلاعی نداشته باشه متوجه نمیشه. دوم اینکه این کتاب شبکه های نسل 5 و 6 را پوشش نداده و این تنها نقضی هست که بنظرم باعث میشه این کتاب perfect نباشه. ولی از هر نظر دیگه بنظرم رو دستش نیست و واقعا هم نیست.

این کتاب خیلی وقت هست که داره توی کتابخونه ام خاک میخوره و یادم رفته بود معرفی کنمش برای همین لینک دانلودی رو نداشتم ولی میدونم فایل PDF این کتاب توی سایت anna's archive هست و با یک جست و جوی ساده میتونید دانلودش کنید.

ps:
همین الان یک نگاه کردم دیدم سایت تروب هم نسخه فیزیکی این کتاب رو برای فروش گذاشته بوده :)))))
5