برنامه نویسی کامپیوتر به همین صورت آموزش داده شده است به مدت سی یا چهل سال ، یا حداقل از زمانی که وارد میدان شدم. از دانش آموز بخواهید یک مترجم یا کامپایلر باز کند و برنامه ای بنویسد که نشان می دهد سلام ، جهان! روی صفحه نمایش سپس چند مفهوم را آموزش دهید ، از دانش آموز بخواهید با استفاده از آن مفاهیم برنامه بنویسد ، بشویید و تکرار کنید. هرچند روش بهتری برای آموزش برنامه نویسی وجود دارد و در این مقاله قصد دارم این برنامه آموزشی جدید را با شما به اشتراک بگذارم. این برنامه درسی بر اساس مقاله ای است که توسط گروهی از محققان در دانشکده اطلاعات دانشگاه واشنگتن نوشته شده است و نویسنده اصلی آن بنیامین شی است.
زی و نویسندگان همکارش دنباله ای از مراحل آموزش و یادگیری برنامه نویسی کامپیوتر را ترسیم می کنند. من مراحل را در اینجا شرح می دهم و سپس در بقیه مقاله عمیق تر به هر مرحله می پردازم. این مراحل عبارتند از: الگوهای کد نویسی جلوتر از بازی و هنگامی که نحوه نوشتن نحو برای یک سازه را درک کردید ، آمادگی حل مشکلات با استفاده از آن را ندارید تا زمانی که الگوهایی را مشاهده نکرده اید که نحوه استفاده از ساختار را در برنامه نشان می دهد.
بیایید این مراحل را بیشتر تقسیم کنید تا ببینید در هر مرحله چه کارهایی باید انجام شود.
اولین قسمت از یادگیری برنامه نویسی باید نحوه خواندن برنامه ها و درک آنچه انجام می دهند. بهترین راه برای انجام این کار نوشتن اثری از همه متغیرهای یک برنامه است. ردیابی مقادیر متغیر از ابتدا تا انتهای یک برنامه نشان می دهد که زبان آموز می تواند جریان یک برنامه را دنبال کند و همه تفاوت های ظریف ساختارهای برنامه نویسی مورد استفاده در برنامه را درک می کند. به عنوان مثال ، در اینجا یک قطعه کد ساده وجود دارد که من اغلب از دانش آموزان خود می خواهم (در C ++) ردیابی کنند:
const int SIZE = 5؛ نمرات int [SIZE] = {71 ، 82 ، 77 ، 92 ، 84} ؛ int کل = 0؛ برای (int i = 0 ؛ iاثری که دانش آموزان می نویسند به این شکل است:
SIZE: 5
i: 0، 1، 2، 3، 4، 5
مجموع: 0 ، 71 ، 153 ، 230 ، 332 ، 416
امکان ردیابی کد از این طریق دو کار را انجام می دهد: 1) نشان می دهد که دانش آموز معانی برنامه را درک می کند. و 2) نشان می دهد که دانش آموز می تواند تأثیر نحو را بر رفتار برنامه پیش بینی کند. این مهارتها قبل از اینکه دانش آموز بتواند برنامه های خود را شروع کند ، بسیار ضروری است.
نوشتن کد برنامه
هنگامی که دانش آموز با خواندن و تجزیه و تحلیل نحو یک برنامه راحت شد ، آماده است کد آن سازه را بنویسید بهترین راه برای تسهیل این یادگیری این است که توضیحات روشنی را در اختیار دانش آموز قرار دهیدساختار مورد نیاز برای کد نویسی و درخواست دانش آموز از توضیحات آن به برنامه.
نمونه ای از مقاله Xie ، et.al. در حال توضیح نحوه چگونگی مبادله مقادیر دو متغیر و تبدیل آن به یک برنامه است. توضیحات آنها به این شکل است:
متغیر x را تعریف کنید. آن را روی 1 تنظیم کنید. متغیر y را تعریف کنید. آن را روی 2 تنظیم کنید. p> دانش آموزی که نحو اصلی نوشتن دستورات تکلیف را درک می کند ، باید بتواند این توصیف را به یک برنامه کامل تبدیل کند ، همانطور که در زیر نشان داده شده است: int x = 1؛ int y = 2 ؛ int temp = x؛ x = y ؛ y = temp؛مشکل اکثر برنامه نویسی این است که انتظار می رود دانش آموزان بتوانند بدون تمرین لازم برای یادگیری خواندن و درک کد ابتدا کد بنویسند.
خواندن الگوها
به گفته Xie ، et.al. ، یک الگو انتزاعی قابل استفاده مجدد از دانش برنامه نویسی است ، و اینکه بتوانید یک الگو را بخوانید و بدانید چه زمان و چگونه از آن برای یک مشکل مناسب استفاده کنید ، گام بعدی در این زمینه است. دستور برنامه نویسی آنها می خوانند بنابراین ، هنگامی که دانش آموز قطعه کد مبادله متغیر را که در بالا نشان داده شده است مشاهده کرد ، آن را تشخیص داده و می فهمد که این الگوی پیاده سازی متغیر است.
مهم است که قبل از اینکه دانش آموز بتواند الگوها را با موفقیت بخواند ، باید بتواند کد را بخواند و بتواند رفتار آن را پیش بینی کند ، که ناشی از خواندن کد زیاد و نوشتن کد است. نداشتن این دانش باعث می شود دانش آموز نتواند درک کند یا نادرست بفهمد که یک قطعه کد چه می کند و باعث شود که الگویی که کد در حال پیاده سازی آن است را اشتباه تفسیر کنند.
نوشتن الگوها
آخرین مرحله در آموزش برنامه نویسی این است که دانش آموز بتواند توضیحات مبهم برنامه را ارائه دهد ، الگوی مورد نیاز برای حل مشکل را تعیین کند و بتواند الگو را در آن مشکل خاص اعمال کند. مقاله Xie این را با مشکل کلمه ای نشان می دهد که در آن یک دختر دارای دو چراغ قوه است ، یکی با قدرت بیشتر از دیگری. با این حال ، چراغ قوه با قدرت بیشتر خراب می شود ، بنابراین او باید باتری ها را عوض کند تا چراغ قوه کار بیشترین قدرت را داشته باشد. این مشکل بیان می کند که میزان قدرت در چراغ قوه در متغیرهای power1 و power2 ذخیره می شود. سر راست با این حال ، اگر دانش آموز در هر یک از سه مرحله دچار نقص باشد ، تلاش برای حرکت از راه حل کلی الگو به یک برنامه کاری می تواند منجر به خطا شود. اگر دانش آموز در مهارت خواندن کد و/یا مهارت نوشتن کد دچار نقص باشد ، احتمالاً هنگام نوشتن برنامه خطاهای نحوی متعددی مرتکب می شود. اگر دانش آموز در الگو خوانی دچار کمبود استمهارت ها ، آنها احتمالاً هنگام تلاش برای استفاده از الگوی مبادله متغیر در مشکل باتری چراغ قوه ، اشتباهات منطقی انجام می دهند.
چرا دستورالعمل برنامه نویسی فعلی خوب کار نمی کند
دنباله ای از مراحل آموزشی توسعه یافته توسط شی و همکارانش نشان می دهد که هنگامی که مهارت های برنامه نویسی به درستی دنبال می شوند ، دانش آموزان برنامه نویسی به طور م effectivelyثرتر و کارآمدتری یاد می گیرند. مشکل اکثر برنامه نویسی های امروزی این است که این مراحل یا رعایت نمی شوند یا با فاصله کافی بین آنها رعایت نمی شود تا دانش آموزان بتوانند قبل از حرکت به مرحله بعدی در یک مرحله مهارت کسب کنند.
به راحتی می توان مربیان برنامه نویسی را برای این مشکل مقصر دانست ، اما از نظر من ، تقصیر اصلی بر سر منابعی است که اکثر مربیان برای آموزش برنامه نویسی استفاده می کنند - کتابهای درسی. من در جاهای دیگر در این وبلاگ در مورد مشکلات کتاب های درسی برنامه نویسی کامپیوتر نوشته ام ، اما یک مشکل این است که این کتاب ها از این دنباله آموزشی پیروی نمی کنند یا حداقل دنباله را با فاصله مناسب دنبال نمی کنند.
سازه های برنامه نویسی معرفی می شوند ، دو یا سه مثال آورده می شود ، و سپس از دانش آموزان خواسته می شود که با استفاده از سازه مسائل را حل کنند. معمولاً از دانش آموزان خواسته نمی شود که قبل از نوشتن چند مثال ساده ، مهارت خود را در خواندن و درک نحو سازه نشان دهند. و به ندرت الگوهای خوب طراحی شده با ساختار برنامه نویسی ارائه می شود تا دانش آموزان را در زمینه ساختار تقویت کند.
چند کتاب درسی برخی از تمرینات مربوط به خواندن کد را در پایان فصل قبل از شروع تمرینات ارائه می دهند. برای کار. با این حال ، با قرار دادن این تمرینات در انتهای فصل ، دانش آموز ترغیب نمی شود که آنها را قبل از انجام مشکلات پیچیده تر که نیاز به استفاده از الگو دارند ، ابتدا انجام دهد. به طور گسترده تری شناخته شده است ، امیدوارم کتابهای درسی جدید و منابع آموزشی دیگری که از این نوع آموزش پیروی می کند ، توسعه داده شود.
اگر به تنهایی برنامه نویسی می آموزید
می توانید این دنباله های موضوعات را دنبال کنید اگر برنامه نویسی کامپیوتر را به تنهایی یاد می گیرید و نه در کلاس درس. برای کسب اطلاعات بیشتر در مورد ردیابی متغیر ، در اینجا یک سایت عالی از بخش علوم کامپیوتر دانشگاه ویسکانسین وجود دارد: http://bit.ly/2OogxOg. بسیاری از وب سایت ها برای آموزش نحوه نوشتن کد به افراد اختصاص داده شده است. بسیاری از آنها به شما امکان می دهند در محیطی تحت وب کار کنید تا بتوانید با اجرای کد خود در مرورگر ، بازخورد فوری دریافت کنید. مدتی را در w3schools.com یا tutorialspoint.com بگذرانید تا ببینید آیا آن سایت ها را دوست دارید یا فقط به سلیقه خود یکی دیگر را جستجو کنید. در مورد کار با قالب ها ، مقاله Xie ، et.al. اطلاعات مقدماتی بسیار خوبی در مورد استفاده از الگوها برای آموزش برنامه نویسی کامپیوتر ارائه می دهد. اگر بسیار شجاع هستید ، کتاب Designing Pascal Solutions: A Case Study Approach ، نوشته مایکل کلنسی و مارسیا لین ، الگوهای زیادی را برای برنامه نویسان مقدماتی ارائه می دهد. مشکل این است که این کتاب برای زبان پاسکال نوشته شده است ، بنابراین اگر سابقه برنامه نویسی نداشته باشید ، ممکن است دنبال کردن آن دشوار باشد. من در مورد استفاده از الگوها برای یادگیری برنامه نویسی کامپیوتر در وبلاگم بیشتر خواهم نوشتآینده.
یادگیری برنامه نویسی می تواند راحت تر باشد
با بیش از بیست سال تدریس برنامه نویسی کامپیوتر ، می دانم که یادگیری زبان برنامه نویسی برای بسیاری از دانش آموزان کار سختی است. با این حال ، با معرفی موضوعات برنامه نویسی به ترتیب ، در زمان مناسب و در دوز مناسب ، دانش آموزان برنامه نویسی را برای یادگیری موضوعی دلپذیر تر می یابند و امیدوارم فارغ از حرفه ای که انتخاب می کنند ، برای آنها مفید باشد.
در ابتدا در https://thelearningprogrammer.com در 4 فوریه 2020 منتشر شد.
در بخش مبتدیان ما ، موضوع به خطر انداختن حریم خصوصی در دو دستگاه پرکاربرد شما را لمس کردیم: تلفن و رایانه شما. در مقاله ما تلفن شما به طور خاص در مورد یک تلفن صحبت کردیم و از آنجا که تلفن های هوشمند امروزی تقریباً رایانه های کوچکی هستند ، بیشتر این موارد در مورد این مقاله نیز صدق می کند. بردارها نیز متنوع هستند. فروشگاه های برنامه های غیر رسمی و وب سایت ها نیز خطرناک هستند. هیچ کس اعتبار و صداقت را در آنجا بررسی نمی کند و مهاجمان اغلب از این امکان به شدت استفاده می کنند. پایبندی به فروشگاه های رسمی برنامه و وب سایت های شرکت برای هر سیستم عامل ضروری است.
فعال کردن رمزگذاری کامل دیسک یکی دیگر از راه های عالی برای محافظت در برابر نشت داده ها است. هر سیستم عامل چنین امکانی را ارائه می دهد و می توانید برای این کار از BitLocker در Windows و FileVault در Mac OS X استفاده کنید. طعم های لینوکس نیز امکانات متنوعی را در این زمینه ارائه می دهد و شما همیشه می توانید از راه حل چند پلتفرمی مانند VeraCrypt استفاده کنید ، که می تواند برای رمزنگاری فایل های جداگانه ، ظروف یا ایجاد حجم های رمزگذاری شده نیز استفاده شود.
خاموش کردن و/یا پوشاندن میکروفون و وب کم شما نیز یک عمل خوب است. یک دلیل واقعی وجود دارد که افراد با حریم خصوصی از روکش های وب کم استفاده می کنند. برای دریافت اطلاعات بیشتر در مورد این و دیگر چالش های حریم خصوصی در زندگی بصورت بصری ، فیلم اسنودن را که در زیر پیوند شده است مشاهده کنید.
اما خطرناک ترین آنها بدافزارها هستند ، به ویژه در سیستم عامل ویندوز. از آنجا که این سیستم عامل پرکاربردترین است ، مهاجمان بیشترین مزایا را برای هدف قرار دادن ویندوز دارند تا سایر سیستم ها. شما همیشه باید مراقب پرونده های ناشناخته باشید و از بهترین شیوه های امنیتی و نرم افزار ضد ویروس ضد ویروس برای حفظ امنیت خود استفاده کنید.
ابتدا در https://academy.horizen.global منتشر شده است.
این اولین مقاله را هنگام یادگیری اتومبیل های خودران با Udacity به عنوان بخشی از نانو درجه آنها نوشتم. برنامه.
برای این مشکلات ، من به ترتیب از دید رایانه رایانه ای ، یادگیری ماشین و یادگیری عمیق استفاده کردم.
چشم انداز رایانه ای برای تشخیص خطوط خطاز رایانه رایانه ای سنتی برای یافتن خطوط خط در جاده ، حتی خطوط منحنی استفاده شد. این رشته همه چیز در مورد استفاده از کتابخانه OpenCV و مطالعه رنگ پیکسل ها برای به دست آوردن شکل مناسب است.
یادگیری ماشین برای تشخیص وسیله نقلیه >یادگیری ماشین به عنوان طبقه بندی کننده با پنجره کشویی برای یافتن اتومبیل و موانع استفاده شد. طبقه بندی SVM اغلب دارای دو کلاس بود: خودرو و خودرو. زاویه فرمان با استفاده از یادگیری تقلیدی و روش یادگیری عمیق پایان به پایان تعیین شد. من آموختم. استحکام را می توان با استفاده از فیلتر کالمن تصحیح کرد ، اما عملکرد چیز دیگری است.
یادگیری ماشین نتایج بدی برای تشخیص موانع ، به ویژه هنگام تشخیص بیش از یک کلاس ، داشت. تکنیک پنجره کشویی نیز در مقایسه با الگوریتم های اخیر بسیار کند است. یادگیری تقویتی نیز امیدوار کننده تر به نظر می رسد اما هنوز در تحقیقات تجربی است.
بینایی رایانه ، یادگیری ماشین و یادگیری عمیق به طور کلی راه حل های خوبی برای مشکلات ادراکی هستند.
< p> اخیراً ، یادگیری عمیق با استفاده از شبکه های عصبی کانولوشن از هر تکنیک دیگری برای تشخیص خط و موانع پیشی گرفته است. آنقدر که حتی ارزش امتحان چیز دیگری را ندارد.مقاله قبلی من از شبکه های عصبی متحد (CNNs) به عنوان روشی جدید برای حل مشکلات بینایی رایانه یاد کرد.
< p> CNN ها معماری خاصی از شبکه های عصبی هستند که می توانند با استفاده از Convolutions شکل های خاصی (مانند اتومبیل ، عابر پیاده و ...) را بیاموزند. از داده های بیشتری نسبت به الگوریتم های یادگیری ماشین استفاده می کند ، و آموزش سخت تر است ، اما نتایج بسیار بهتر است.معماری یادگیری عمیق امروزه می تواند برای اهداف خاصی مانندتشخیص جعبه محدوده یا رگرسیون ضریب خط. بر خلاف "روش طبقه بندی" ، نیازی به استفاده از پنجره کشویی یا هیستوگرام برای خروجی نتیجه مورد نظر نیست. شبکه های عصبی را می توان طوری تنظیم کرد که هر چه می خواهیم تولید کنند.
هنگام تشخیص موانع ، نتیجه به طور کلی فراتر از خروج ساده خودرو یا عدم رانندگی است. ما به مختصات کادر محدود کننده (x1 ، y1 ، x2 ، y2) نیاز داریم که قبلاً با پنجره کشویی داشتیم. ما به اطمینان نمره (تا آستانه مقادیر اطمینان پایین) و کلاس (خودرو ، عابر پیاده ،…) که الگوریتم SVM بدست آورده ایم نیاز داریم. در انتهای شبکه عصبی.
لایه های متحرک برای یادگیری ویژگی های مستقل (اندازه ، رنگ ، شکل) در حالی که آخرین لایه ها در اینجا برای خروجی هستند. آنها یاد می گیرند که مختصات جعبه محدود کننده و سایر ویژگیهای مرتبطی را که ما به آنها نیاز داریم ، تولید کنند. همه در یک شبکه عصبی واحد انجام می شود.
معماری CNN برای تشخیص موانع < /img>برای تشخیص خطوط خط ، یادگیری عمیق را می توان دقیقاً به همان شیوه استفاده کرد.
نقش ایجاد ضرایب معادله خط خط است. خطوط خط را می توان با معادلات ضرایب درجه اول ، دوم یا سوم تقریب زد. معادله مرتبه اول به سادگی ax+b (یک خط مستقیم) است در حالی که ابعاد بالاتر اجازه ایجاد منحنی ها را می دهد.
خطوط 1D در مقابل خط دو بعدیدر CNN ، لایه های کانولوشن ویژگی ها را می آموزند ، در حالی که آخرین لایه ها ضرایب خط (a ، b و ج).
این ممکن است ساده به نظر برسد: چند لایه پیچشی تنظیم کنید ، چند لایه متراکم تنظیم کنید و معماری خروجی را تنها با 3 نورون برای ضرایب a ، b و c تنظیم کنید.
< در واقع ، این راه سخت تر است. مجموعه داده ها همیشه ضرایب خطوط خط را ذکر نمی کنند و همچنین ممکن است بخواهیم نوع خط (خط کشی ، جامد ،…) و همچنین اینکه آیا خط متعلق به خط وسیله نقلیه ego است یا به یک خط مجاور تشخیص دهیم. ویژگیهای متعددی وجود دارد که ممکن است بخواهیم داشته باشیم و آموزش یک شبکه عصبی واحد بسیار دشوار و تعمیم آن دشوارتر است.یک روش رایج برای حل این مشکل استفاده از تقسیم بندی است. در تقسیم بندی ، هدف این است که به هر پیکسل یک تصویر کلاس داده شود.
یک رنگ در هر کلاسدر این رویکرد ، هر خط مربوط به یک کلاس (ego چپ ، ego راست ، ...) است و هدف شبکه عصبی ایجاد تصویری فقط با این رنگ ها است.
نمونه تصویر خروجیدر این نوع معماری ، سیستم عصبی شبکه در دو قسمت کار می کند قسمت اول ویژگی ها را یاد می گیرد ، قسمت دوم خروجی را می آموزد. درست مانند تشخیص جعبه.
معماری U-Netبرای تشخیص خطوطاگر خروجی یک تصویر سیاه ساده با رنگ ، استفاده از یادگیری ماشین و رگرسیون خطی (یا چندگانه) برای یافتن خطوط خط در نقاط رنگی بسیار ساده است. 10 برابر سریعتر در آزمایشاتم ، 5 رویکرد FPS برای رویکرد دید رایانه ای و حدود 50 FPS برای رویکرد یادگیری عمیق داشتم.
I اخیراً مقاله ای منتشر شد که بسیار مورد توجه قرار گرفت: چشم انداز رایانه ای برای ردیابی.
در این مقاله ، من به تکنیکی برای ردیابی موانع در طول زمان با استفاده از دوربین ، یادگیری عمیق و الگوریتم های هوش مصنوعی مانند کالمن اشاره می کنم. فیلترها و الگوریتم مجار.
در اینجا ، جعبه های محدود کننده مانند یک روش کلاسیک YOLO رنگ ها را از قاب 1 به قاب 2 تغییر نمی دهند. اتومبیل سمت راست دارای یک جعبه محدود مشکی در قاب 1 و در قاب 2 به دلیل ارتباط است. اشیاء همرنگ جعبه های رنگی یکسانی ندارند.
یادگیری این نتیجه برای شبکه های عصبی بسیار دشوار است. به همین دلیل است که ما از فیلترینگ بیزی و الگوریتم ارتباط استفاده می کنیم. در اینجا درک بهتری داشته باشید.
در این رویکرد ، Deep Learning برای محدود کردن تشخیص جعبه استفاده می شود و نتیجه بلافاصله به الگوریتم های دیگر منتقل می شود که تصمیم می گیرند آیا وسیله نقلیه قبلی مشابه است یا خیر. به برای تصمیم گیری ، ویژگی های متغیر نیز می توانند به عنوان مطابقت بستگی به ظاهر شیء داشته باشند. برای یادگیری عمیق در اتومبیل های خودران-جعبه های محدود کننده سه بعدی
جعبه های محدود کننده بسیار عالی هستند تا بتوانیم موانع را بومی سازی کنیم. با این حال ، داشتن محلی سازی دو بعدی با مختصات پیکسل ممکن است چندان مفید نباشد. آنچه ترجیح داده می شود این است که موقعیت سه بعدی با x ، y ، z به طور مستقیم وجود داشته باشد.
به نظر می رسد که از مختصات پیکسل این امر بسیار دشوار است:
مقاله مربوط به روشی برای برآورد جعبه های محدود کننده سه بعدی بحث می کند با استفاده از یادگیری عمیق و هندسه.
معماری شبکه عصبی برای برآورد سه بعدیدر این رویکرد ، Deep Learning مجدداً برای یادگیری ویژگی (ابعاد ، زاویه ، اطمینان) استفاده می شود. سپس از هندسه برای ترجمه اطلاعات به جهان سه بعدی استفاده می شود.
تشخیص فضای آزاد در دنیای خودروهای خودران بسیار مشهور است. با این حال ، بسیاری از مردم هنوز تعجب می کنند که چه کاربردی دارد. من فرصتی برای استفاده از آن نداشتم زیرا پیشرفت ها استفاده از فضای آزاد را در اولویت قرار نمی دهند. اما امیدوارم ایده خوبی در مورد استفاده داشته باشم.
معماری شبیه بخش تقسیم بندی با مشکل تشخیص خط است.
SegNetروش رمزگذار-رمزگشایی مشابه روش U-Net است. رمزگذار به معنای پیچیدگی و ویژگی های یادگیری ، رمزگشایی به معنی بازسازی نقشه ویژگی ها است.
وقتی به دنیای بینایی رایانه نگاه می کنیم ، می توانیم یک فاصله واقعی بین دوره های واقعیت و آنلاین مشاهده کنید.
به عنوان مثال ، شما ممکن است در یک دوره آنلاین نحوه اجرای یک شبکه YOLO را بیاموزید ، اما یک مورد استفاده در دنیای واقعی ممکن است 7 شبکه YOLO را در GPU های توزیع شده درخواست کند. و معماری HydraNet این چه عجایبی است؟ ما همه اینها را در Coursera نیاموختیم!
بنابراین امروز ، تصمیم گرفتم ویدیویی را از Andrej Karpathy ، AI Lead در تسلا جدا کنم و آنچه را که در داخل نرم افزار تسلا اتفاق می افتد برای شما توضیح دهم. پیوند ویدیو را در پایان این مقاله به اشتراک می گذارم.
امیدوارم متوجه شوید که هیچ چیز را نمی توانید درک کنید ، حداقل از یک مفهوم سطح بالا. < /p>
عمیقاً در زیر فرو می رویم:
به طور خاص ، ما به یکی از نگرانی های مهم تسلا می پردازیم: 50 کار باید روی رایانه انجام شود ، به طور همزمان ، در رایانه ای که فضای زیادی را اشغال نمی کند.
رایانه FSDپس بیایید به آن برسیم!
به گفته ایلان ماسک ، از ابتدای ژوئیه (2020) ، تسلا به خودروهای کاملاً خودران نزدیک است-که به عنوان خودمختاری سطح 5 نیز شناخته می شود. چه واقعیت داشته باشد چه نباشد ، یک چیز بیش از پیش روشن می شود: تسلا آماده است تا قبل از دیگران به خودمختاری کامل برسد. هنگامی که آنها این کار را انجام می دهند ، بقیه احتمالاً به سرعت دنبال می شوند.
عملکرد اصلی هر وسیله نقلیه خودران ، از جمله کارهایی که در تسلا انجام می شود این است که در خط صحیح بمانید ، سپس مسیر را تغییر دهید تا مسیر درست را دنبال کنید.
بدیهی است که وظایفی مانند تشخیص موانع بخش بزرگی از پشته است. و ویژگی های دیگر مانند Smart Summon به خودرو اجازه می دهد تا راننده را در یک پارکینگ پیدا کند. این وظایف اضافی ، در میان سایر وظایف ، به خط اصلی و مسیر اصلی حرکت می کند تا به سمت هدف بلند مدت حرکت کند: قابلیت های کامل خودران.
تسلا باید تمام این وظایف را انجام دهدتسلا از 8 دوربین برای عملکرد استفاده می کند. با این کار ، آنها می توانند تمام مناطق اطراف وسیله نقلیه را پوشش دهند تا نقطه کوری وجود نداشته باشد.
نمای از 8 دوربین8 دوربینبا RADAR های اضافی ترکیب می شوند تا بتوانند موانع را به طور م locateثر شناسایی و آنها را شناسایی کنند. RADAR ها حسگرهای مکمل بسیار خوبی هستند زیرا می توانند سرعتها را مستقیماً تخمین بزنند. می توانید در مقاله RADAR من بیشتر بیاموزید.
این تصاویر دوربین چگونه پردازش می شوند؟ استفاده از شبکه های عصبی.
بین وسایل نقلیه ، خطوط پیاده رو ، حاشیه جاده ها ، گذرگاه ها و سایر متغیرهای محیطی خاص ، تسلا کارهای زیادی برای انجام دادن دارد. در حقیقت ، آنها باید حداقل 50 شبکه عصبی را به طور همزمان اجرا کنند تا بتواند کار کند. این امر در رایانه های معمولی امکان پذیر نیست.
شبکه های عصبی با استفاده از PyTorch ، یک چارچوب یادگیری عمیق که ممکن است با آن آشنا باشید ، آموزش می بینند.
گاهی اوقات نتایج یک شبکه عصبی باید به صورت سه بعدی تفسیر شود. نمای چشم پرنده می تواند به تخمین فاصله ها کمک کند و درک بسیار بهتر و واقعی تری از جهان ارائه دهد.
احضار هوشمند در تسلا با استفاده از نمای چشم پرندهبرخی از کارها بر روی چندین دوربین اجرا می شوند. به عنوان مثال ، برآورد عمق چیزی است که ما عموما در دوربین های استریو انجام می دهیم. داشتن 2 دوربین به تخمین بهتر فاصله ها کمک می کند. تسلا این کار را با استفاده از شبکه های عصبی با رگرسیون در عمق انجام می دهد.
برآورد عمق از 2 دوربینتسلا همچنین وظایف مکرر مانند برآورد چیدمان جاده دارد. این ایده مشابه است: چندین شبکه عصبی به طور جداگانه اجرا می شوند و یک شبکه عصبی دیگر در حال ایجاد اتصال است.
به صورت اختیاری ، این شبکه عصبی می تواند مکرر باشد تا زمان را در بر گیرد.
به این معنی است که برای هر پاس رو به جلو ، 4096 تصویر پردازش می شود. من در مورد شما اطلاعی ندارم ، اما MacBook Pro من هرگز نمی تواند از این پشتیبانی کند. در واقع ، GPU نمی تواند این کار را انجام دهد - نهحتی 2 GPU!
برای حل این مشکل ، تسلا روی معماری HydraNet شرط بندی می کند. هر دوربینی از طریق یک شبکه عصبی واحد پردازش می شود. سپس همه چیز در شبکه عصبی میانی ترکیب می شود. نکته شگفت انگیز این است که هر کاری تنها به چند قسمت از این شبکه غول پیکر نیاز دارد.
به عنوان مثال ، تشخیص شیء فقط به دوربین جلو ، ستون فقرات جلو و دوربین دوم نیاز دارد. همه چیز یکسان پردازش نمی شود.
8 شبکه عصبی اصلی مورد استفاده تسلاآموزش شبکه با استفاده از PyTorch انجام می شود. چندین کار مورد نیاز است و آموزش بر روی 48 سر شبکه عصبی می تواند زمان زیادی را صرف کند. در حقیقت ، آموزش برای تکمیل به 70،000 ساعت GPU نیاز دارد. تقریباً 8 سال است.
تسلا در حال تغییر حالت آموزش از "رفت و برگشت" به "استخر کارگران" است. در اینجا ایده وجود دارد: در سمت چپ - گزینه طولانی و غیرممکن. در وسط و راست ، گزینه های جایگزین مورد استفاده آنها.
امیدوارم اکنون ایده روشنی از نحوه کار در آنجا داشته باشید. درک آن غیرممکن نیست ، اما قطعاً متفاوت از چیزی است که ممکن است به آن عادت کرده باشیم. چرا؟ از آنجا که این شامل مشکلات بسیار پیچیده ای در دنیای واقعی است.
علاوه بر این ، تسلا باید به طور مداوم نرم افزار خود را بهبود بخشد. آنها باید داده های کاربران را جمع آوری کرده و از آنها استفاده کنند. از این گذشته ، آنها هزاران وسیله نقلیه دارند که در آنجا رانندگی می کنند ، احمقانه خواهد بود که از داده های آنها برای بهبود مدل خود استفاده نکنند. هر داده ای جمع آوری ، برچسب گذاری و برای آموزش استفاده می شود. شبیه فرایندی به نام یادگیری فعال (در این مورد در اینجا اطلاعات بیشتری کسب کنید).
بیایید پشته را از پایین به بالا تعریف کنیم.
⏩ در اینجا ویدئویی است که همه چیز را شرح می دهد. فقط تصاویری را که به شما نشان دادم نوشتم و جمع آوری کردم.
ممکن است کمی از همه چیز که توضیح دادم غرق شده باشید. بسیار پیشرفته تر از آن چیزی است که اکثر دوره ها آموزش می دهند ، و طبیعی است. با این حال ، امروزه شرکت ها اینگونه عمل می کنند. آن استبه ندرت می توان شرکتی را مشاهده کرد که از دسته های از پیش ساخته شده از لایه های متحرک بدون تغییر استفاده کند.
در اینجا خلاصه ای از همه مواردی است که ما در مورد آن بحث کردیم:
هدف تسلا این است که اولین شرکتی باشد که به خودمختاری کامل دست یافته است. امروزه آنها با ارزش ترین شرکت خودروسازی در کل جهان هستند و قصد توقف در آنجا را ندارند. آنها با چالش های جالبی روبرو هستند که ما در هنگام یادگیری هوش مصنوعی و یادگیری عمیق از راحتی خانه های خود با آنها روبرو نیستیم.
تبصره ویرایشگر: ضربان قلب یک نشریه و انجمن آنلاین مبتنی بر مشارکت است که به کاوش در تقاطع نوظهور توسعه برنامه تلفن همراه و یادگیری ماشین اختصاص داده شده است. ما متعهد هستیم که از توسعه دهندگان و مهندسان از هر قشری حمایت و الهام بگیریم.
مستقل از نظر ویرایش ، Heartbeat توسط Fritz AI ، پلت فرم یادگیری ماشینی که به توسعه دهندگان کمک می کند تا دستگاه ها را ببینند ، بشنوند ، حمایت و منتشر می شود. حس کنید و فکر کنید ما به مشارکت کنندگان خود پرداخت می کنیم و تبلیغات نمی فروشیم.
اگر می خواهید مشارکت داشته باشید ، به تماس ما برای مشارکت کنندگان سر بزنید. همچنین می توانید برای دریافت خبرنامه های هفتگی ما (هفته نامه یادگیری عمیق و خبرنامه هوش مصنوعی Fritz) ثبت نام کنید ، در Slack به ما بپیوندید و Fritz AI را در توییتر دنبال کنید تا آخرین یادگیری ماشین تلفن همراه را مشاهده کنید.
Olá povo،
از این طریق می توانید مشتریان خود را از طریق Vivo منعکس کنید. از وبلاگ خود استفاده کنید (ver imagem abaixo) منطقه ای را در دسترس قرار دهید (2010/01/05) از طریق OTA برای Motorola Milestone برای ورژن 2.1 در Android استفاده کنید. No entanto até agora، 19:30 do domingo، 02/05/2010، essa atualização não está disponível.
Segundo conversa com o suporte da Vivo (*474663) ، مقاله atualização não está disponível ، o que caracteriza uma propaganda enganosa.
Vivo، um sinal de descaso com o cliente.
4br4ç05،
nglauber