آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تست Machine Learning با استفاده از kotlin

uncocoder  5 سال پیش  4 سال پیش
+54 0

معمولاً برای برنامه نویسی نرم افزارهای مبتنی بر Machine Learning از Python استفاده می شود، چرا که ساختار Python یک ساختار خطی ساده و بدور از پیچیدگی هایی نظیر Object Oriented است و به همین واسطه طرفداران زیادی دارد. باز به واسطه همین طرفدارها معمولاً Library های مبتنی بر مباحث علمی برای این زبان توسعه داده می شود چرا که عموماً متخصصان در عرصه های مختلف بدون دانستن تکنیک های پیشرفته برنامه نویسی سعی در آزمون و خطای نظریه خود دارند.

اما این باعث نمی شود که فکر کنیم استفاده از سایر زبان ها مانعی برای Machine Learning است و افراد بسیاری سعی در Port کردن Library های مفید برای هر زبانی دارند چه برسد که آن زبان جاوا یا کاتلین باشد.

از آنجاییکه برای من تکنیک های برنامه نویسی و ساختار اصولی با قابلیت Code Reuse در درجه اول اهمیت قرار دارد، پس زبان Kotlin را که می تواند مشترکاً برای توسعه نرم افزار های Javascript, Android/Java (JVM ) مورد استفاده قرار گیرد انتخاب کردم. همینطور این موضوع بهانه ای است برای شخم زدن بیشتر Kotlin و بررسی های عمیقتر و تکنیکی تر.

  1. در ابتدا برای تست استفاده از Canvas در HTML5 تصمیم به برنامه نویسی بازی FlappyBird با استفاده از Kotlin گرفتم که می تواند الگوی آکادمیک و مناسبی برای توسعه یک Machine Learning ابتدایی باشد.
  2. سپس با تغییراتی در آن، بجای بازی Single Player، امکان بازی کردن توسط چند پرنده همزمان را ایجاد کردم.
  3. سپس با ساختار شبکه های عصبی ( Neural Network ) را برای آنها پیاده سازی کردم و همه چیز خوب کار کرد.
  4. سپس از ساختار پیاده شده برای Canvas و HTML5 یک موتور بازی اختصاصی بر پایه Canvas ساختم و بازی Flappy Bird را مجدداً با آن سازگار کردم. این موتور قابلیت استفاده بسیار راحت در سایر پروژه ها را خواهد داشت.
  5. سپس شبکه های عصبی پیاده شده را تفکیک کردم و یک Library جهت استفاده مشترک در JVM و Javascript برای Neural Network و Genetic Algorithm ایجاد کردم و سورس را بر پایه آن مرتب سازی کردم.

در نهایت بعد از انجام این پروژه عوارض جانبی سودمندی بدست آمد:

  • فراگیری عمیقتر Machine Learning, Neural Network, Genetic Algorithm به طوریکه از هیچ Library واسطه ای استفاده نشده و همه با تحلیل شخصی به عنوان یک Library جدید برنامه نویسی شده است.
  • توسعه یک Library جهت انجام عملیات ماتریسی که به ندرت در سورس های اینترنتی قابل مشاهده می باشد.
  • توسعه یک موتور بازی به نسبت کامل برای HTML5 با استفاده از Canvas
  • توسعه بازی Flappy Bird
  • و در نهایت تسلط بیشتر بر توسعه Kotlin

روش پیاده سازی پروژه فعلی از نظر توسعه بازی و هوش آن، بسیار متفاوت از پروژه های Open Source اینترنت است

دموی واقعی از پروژه
Slow Normal Fast

© 2018 Behnam Aghajani - All Rights Reserved
+3 0
سلام به به بسیار عالی میگفتم این زبان کاتلین یک انقلابی رو تو حوزه برنامه نویسی می کنه ها اینم یه چشمه اش (5 سال پیش)
+3 0
بسیار عالی استاد کاتلین واقعا زبانه جالبیه. استاد آیا آموزشش رو در اختیار بچا قرار میدید؟ (5 سال پیش)
+4 0
کم کم دارم به بازی‌سازی علاقه‌مند می‌شم. (5 سال پیش)
+3 0
سلام، استاد تویه یکی از پادکست ها یا وبینار ها به بچه ها توصیه کرده بودید که بزارید چند نسخه از کاتلین منتشر بشه بعد برید سراغش مثل اندروید استدیو با این وجود بازم سر حرفتون هستید یا اینکه بقدری این زبان کامل و جالب هستش که توصیه میکنید از الان بریم سمتش ؟ ممنون میشم بیشتر توضیح بدید (5 سال پیش)
+3 0
خیلی جالبه :)) خسته نباشید. (5 سال پیش)
+2 0
استاد همه این کارها رو تو چه مدت انجام دادید :) خیلی بی سرصدا :))))) کی یادمون میدید همه اینارو :) (5 سال پیش)
+3 0
سلام استاد کارتون واقعا عالیه ذهن الگوریتمیک و قوه ی تحلیل خیلی بالایی دارید لذت بردم امیدوارم این چنین آموزش ها هم تولید کنید که خودم خیلی دنبالشم و اینها چیزیه که به این راحتی ها جایی نمیشه پیدا کرد و حاصل سالها تجربه هست آموزش بازی نقطه خط اندروید شما را که استفاده کردم کلی نکته و تکنیک برام داشت که هیچ جایی ندیده بودم و ذهنمو خیلی باز کرد سپاس (5 سال پیش)
+13 0
نظر اگر واقعاً جمعیت علاقه مند زیاد باشه، چرا که نه. اما فعلاً دوستان زیادی علاقه نشون ندادن. (5 سال پیش)
+9 0
نظر به طور کل چسبیدن به تکنولوژی روز، پر هزینه، خسته کننده و عموماً باعث ناموفقیت و دلسردی می شود. زمانی که خود من محصولی را تست می کنم و اگر از عملکرد آن مطمئن شوم می توانم آنرا توصیه کنم. به طور مثال از Go آنطور که باید راضی نیستم و می بینید که خیلی به آموزش آن علاقه نشان نمی دهم. (5 سال پیش)
+11 0
نظر این کارها در وقت های آزاد بین کاری و در زمان خستگی و دیپرس بودن انجام شده تا انرژی اضافه به من تزریق کند. شاید جمعاً 15 ساعت وقت برده باشد. (5 سال پیش)
+6 0
منم آموزش هوش مصنوعی و یادگیری ماشین میخوام :-o (5 سال پیش)
+3 0
چه بازی جالبی:) پس شما هم هر از گاهی دپرس میشین از توسعه. فکر کردم فقط من اینجوریم:X (5 سال پیش)
+4 0
سلام استاد. نمیدونم چرا میگید علاقه زیادی نشون داده نشده اما به نظرم بد نباشه اگرنظر سنجی برای آموزش زبان کاتلین بذارین. خود من به شخصه علاقه مند هستم. سیستم نظر سنجی سایت خیلی وقته که راه اندازی شده حیفه که فقط یک نظر سنجی انجام شده. (5 سال پیش)
+6 0
با سلام ، بسيار مطلب و مقاله ي عميق نگرانه اي بود. قطعا اگه در اين زمينه پكيجي ارائه بشه بنده جزو اولينهاي آن خواهم بود. استاد عزيز ، يك نظر سنجي تدارك ببينيد تا متوجه بشيم چقدر حامي داره ، به شخصه فكر ميكنم حاميان زيادي داشته باشه و كسان زيادي باشند كه بخوان به كاتلين سوويچ كنند يا حداقل به عنوان زبون آينده اون رو ياد بگيرند. منتظر آموزشي در اين خصوص خواهيم بود . (5 سال پیش)
+1 0
سلام استاد، خدا قوت. خیلی کار قشنگیه و میتونه تو ابعاد و زمینه های مختلف توسعه داده بشه. امیدوارم بتونیم از تجربیات شما تو این زمینه بیشتر استفاده کنیم. موفق باشید. (5 سال پیش)
+6 0
نظر آموزش کاتلین متفاوت از آموزش Machine Learning است هر چند که می تواند بر پایه آن باشد. طبیعی است طرفداران آموزش Kotlin بسیار زیاد است اما تجربه نشان داده طرفداران آموزشهایی مثل ساخت بازی فوق و سپس ارائه دانش غیر کاربردی در کوتاه مدت ( مثل Machine Learning ) مخاطب زیادی نداشته باشد. (5 سال پیش)
+4 0
مهندس machine learning طرفدار داره ها . من :) (5 سال پیش)
+2 0
مثل همیشه عالی استاد . خدا قوت (5 سال پیش)
0 0
خب بعدش چی شد؟ (5 سال پیش)
+1 0
سلام به دوستان و استاد عزیز... مقاله ارائه شده خیلی عالی بود.. نمیدونم از خیلی وقته به ماشین لرنینگ و هوش مصنوعی چرا اینقدر علاقه مند شدم. امیدوارم دوستان حمایت کنند تا استاد آموزش هایی هم در این راستا قرار دهند. ان شاالله (5 سال پیش)
+2 0
سلام استاد. خدا قوت. من فک میکنم که یادگیری ماشین و زبان کاتلین طرفدارای زیادی داره و مطمینا اگر که آموزش کاملی (مثل همه ی آموزش هایی که تا الان ارایه کردید) برای این دو مبحث تهیه کنید، من اولین شاگردتون هستم. (5 سال پیش)
+2 0
مقاله جالب و مفیدی بود..خدا قوت (5 سال پیش)
+2 0
دمتون گرم استاد. امیدوارم همیشه شاد و سالم باشین.و هر روز اتفاقات خوب در انتظارتون باشه. (5 سال پیش)
+1 0
لینک استاد خوب به صورت پیش خرید بزارید آموزش کاتلین رو اگر تعداد خرید مناسب بود آموزش رو ظبط کنید مسلما استقبال میشه (5 سال پیش)
+1 0
نظر خوبيه ، بسته ي كاتلين رو بصورت پيشخريد بزاريد اگه استقبال شد اون رو ضبط كنيد. عالي ميشه (5 سال پیش)
+3 0
آموزش کاتلین که رکورد خواهد شد، هوش مصنوعی و ماشین لرنینگ بحث اصلی این داستان است. (5 سال پیش)
+2 0
استاد زمان حدودی نمیتونید بدین واسه آموزش کاتلین؟ حدودا کی ارائه میشه؟ (5 سال پیش)
+3 0
همین امروز ( 7 آذر 97 ) لایو اینستاگرام گذاشتم در خصوص این موضوع. به اخبار روان سایت و یا گروه تلگرامی دقت کنید تا فرصت ثبت نام را از دست ندهید. (5 سال پیش)
+2 0
لینک یعنی هوش مصنوعی و ماشین لرنینگ هم در آینده تدوین میشه؟ (5 سال پیش)
+2 0
نظر با توجه به بازخورد کم، بعید می دونم. شاید در آینده که نیاز بیشتری حس کردند دوستان. (5 سال پیش)
+1 0
خیلی فوق العاده است (5 سال پیش)
0 0
استاد آیا کاتلین قابلیت آنالیز big data یا data sciece رو داره یا نه ؟ اگر داره تصمیم ندارید آموزشی در این خصوص تدوین کنید؟ (4 سال پیش)
0 0
نظر بررسی دقیق نشده و از امکان آن مطمئن نیستم. آموزش این موضوع در برنامه نیست. (4 سال پیش)
+3 0
سلام استاد امکان این رو ندارید یه آموزش با استفاده از همین ماشین لرنینگ یا حتی AR برای اندروید انجام بدید . مقداری جای خالیش داخل کل سایت های ایرانی احساس میشه. میتونید ی نظر سنجی هم راجب این نوع از آموزش ها هم بگذارید. (4 سال پیش)