ساخت یک شبکه عصبی مصنوعی در یک خط کد

شکل ۱. ساخت شبکه عصبی مصنوعی
شکل ۱. ساخت شبکه عصبی مصنوعی
منتشر‌شده در : towardsdatascience به تاریخ ۲ ژوئن ۲۰۲۱
لینک منبع Building an Artificial Neural Network in One Line of Code

مقالات نظری زیادی در مورد آناتومی و ریاضیات شبکه‌های عصبی مصنوعی وجود دارد، بنابراین من یک رویکرد دیگر برای نوشتن و آموزش این موضوع خواهم داشت. در این مقاله، ما می‌خواهیم فورا دست‌ به کار شویم!

بیایید همین حالا شروع کنیم. اگر می‌خواهید از بخش نصب صرف‌نظر کنید، می‌توانید بخش زیر را انتخاب کنید.

* گزینه نصب ۱ گزینه ۲ * داده‌ها * مدل * چرا تنش؟

نصب

اگر شما در حال حاضر الزامات را نصب کرده‌اید، می‌توانید از این بخش صرف‌نظر کنید.

روش ۱:

اولین کاری که باید بکنیم این است که مطمئن شویم زبان برنامه‌نویسی پایتون را نصب کرده‌ایم، بنابراین اگر نکردید ادامه دهید و آن را در اینجا نصب کنید.

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

اگر در ویندوز هستید، دکمه پنجره را فشار دهید و دکمه «cmd» را تایپ کنید. سپس بر روی آیکون سیاه که در آن می‌گوید «فرمانPrompt» در بالای نتایج کلیک کنید.

حالا به سادگی تایپ کنید:

pip install numpy
pip install matplotlib

و

pip install tensorflow

توجه داشته باشید که اگر در مک یا لینوکس هستید، ممکن است به جای «pip» باید«pip3» را تایپ کنید.

کار بعدی که باید انجام دهید این است که به سادگی یک نوع ویرایشگر متنی و یا فردی مانند nodepad، Pycharm، VSCode، Sublime و یا برخی دیگر از ویرایش‌کننده‌ها را باز کنید.

روش ۲:

در گوگل درایو خود از Google’s Colaboratory استفاده کنید. شما می‌توانید تمام اطلاعات مورد نیاز برای انجام این کار را در وب سایت به دست آورید.

Google Colaboratory

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

داده‌

هنگامی که ما یک الگوریتم یادگیری ماشینی نظارت شده را آموزش می‌دهیم، به داده‌های برچسب‌دار نیاز داریم. یعنی، ما به یک مجموعه داده نیاز داریم که در آن برای هر مثال x ما به برچسب y نیاز داریم که مدل باید زمانی که x تغذیه می‌شود پیش‌بینی کند.

در این مقاله، ما ساده‌ترین کار ممکن را انجام خواهیم داد. ما به آزمایش کردن فکر نمی‌کنیم، بنابراین این در مورد بهترین تمرین نیست! ما به سادگی یک رابطه خطی را در نظر می‌گیریم و تلاش می‌کنیم تا مدل را با ساخت یک شبکه عصبی تنها یک نورون در کتابخانه یادگیری ماشینی گوگل، tensorFlow، تطبیق دهیم.

اجازه دهید ادیتور منتخب خود را معرفی کنیم و تایپ کنیم

این کد اطمینان حاصل می‌کند که تمام کتابخانه‌های مربوطه بارگذاری شده‌اند. شما می‌خواهید نسخهTensorFlow برای برخی از x ≥ 0 2x باشد، بنابراین یک نسخه ساده را امتحان کنید

print(tf.__version__)

شما باید چیزی مثل «۲.۵.۰.» را ببینید.

بیایید داده‌ها را ایجاد کنیم. ما داده‌های خودمان را ایجاد خواهیم کرد. تنها کافی است یک رابطه خطی مانند این ایجاد کنید.

شما ممکن است به عنوان یک انسان باهوش که هستید، از قبل این الگو را متوجه شده باشید.

اگر حدس زده‌اید f(x) = ۱/۲ + x/۲، درست حدس زده‌اید.

مدل

ایده این است: ما قصد داریم مقادیر شبکه را از آرایه xs نشان دهیم و به مدل پاسخ‌های صحیح را به شکل آرایه ys بگوییم به طوری که برای هر مقدار x، مدل یک حدس بزند، و خودش را با نگاه کردن به مقدار y متناظر حقیقی تصحیح کند.

سپس مدل خود را از طریق چیزی به نام پس انتشار (ما از نزول گرادیان تصادفی استفاده خواهیم کرد) تنظیم خواهد کرد و برای هر مثال، مدل بهبود خواهد یافت.

ما داده‌های زیادی نداریم، بنابراین این دقت مدل را البته محدود خواهد کرد، اما تنها هدف این مقاله ثبت ایده شبکه عصبی و رسیدن به برخی ترکیبات ساده ازtensorFlow است.

ما قصد داریم یک شبکه عصبی مصنوعی از یک گره منفرد در یک خط کد، یعنی موارد زیر ایجاد کنیم:

اکنون ما شبکه را ساختیم، بیایید آن را آموزش دهیم.

بهینه‌ساز اطمینان حاصل می‌کند که شبکه حدس‌های خود را بهبود می‌بخشد و تابع زیان میزان خوب یا بد بودن یک حدس را اندازه‌گیری می‌کند.

حال بیایید یک پیش‌بینی کنیم. درباره «۴.۱۲» حرف می‌زنیم حال بیایید کمی پیش‌بینی کنیم.

خروجی که ما به دست می‌آوریم تصویر زیر است، که حقیقت پایه را به رنگ سبز و پیش‌بینی‌های مدل را به رنگ قرمز نشان می‌دهد.

شکل ۲: خروجی
شکل ۲: خروجی

توجه داشته باشید که این رگرسیون خطی نیست زیرا هیچ ارتباطی با «بهترین تناسب» ندارد، بلکه نتیجه مدلی است که تلاش می‌کند خود را برای هر تلاش اصلاح کند. فقدان داده و سادگی مدل بیان شده‌است، اما ما هنوز هم برای درک ماهیت شبکه عصبی در این کار ساده مدیریت می‌کنیم.

برای هدایت این نقطه به خانه، سعی کنید این کد را دوباره اجرا کنید. شما نمی‌توانید دقیقا همان پیش‌بینی‌ها را به دست آورید چون این یک مدل جدید است و یک مدل یادگیری ماشینی در طبیعت احتمالی است.

برای مثال، وقتی بار دوم آن را اجرا کردم، زمانی که مدل شماره ۷ را تغذیه کردم، یک پیش‌بینی جدید به دست آوردم. من حدود 4.08 گرفتم. و شما چیزی متفاوت از من خواهید گرفت!

شما می‌توانید با این کد بازی کنید تا خودتان را با نحو و اثر پارامترهای (بیش از حد) آشنا کنید.

برای مثال سعی کنید دوره‌ها را بر روی ۲۰۰ یا ۱۰۰۰ تنظیم کنید. دیگر روابط خطی را امتحان کنید.

چرا TensorFlow؟

دلایل متعددی وجود دارد که چرا TensorFlow انتخاب بسیار خوبی است اگر می‌خواهید یاد بگیرید چگونه مدل‌های یادگیری ماشینی بسازید.

این کهTensorFlow یکی از پرتقاضا ترین و محبوب‌ترین چارچوب‌های یادگیری عمیق است که امروزه در دسترس است.

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

شرکت‌هایی که ازTensorFlow استفاده می‌کنند شامل

  • ایر بی ان بی
  • آیرباس
  • کوکا کولا
  • گوگل
  • اینتل
  • لنوو
  • پیپال
  • اسپاتیفای
  • توییتر

و لیست ادامه دارد …

بنابراینTensorFlow اینجا است تا بماند و اگر شما می‌خواهید در آینده شغلی به عنوان یک دانشمند داده یا مهندس ML داشته باشید، شرکت‌های زیادی وجود دارند که توسعه دهندگانTensorFlow را استخدام می‌کنند بنابراین یادگیری این چارچوب عالی قطعا ارزش وقت شما را دارد.

ما به انتهای این مقدمه کوچک و بسیار ساده به TensorFlow و شبکه‌های عصبی رسیدیم.

در آینده، من به طور فزاینده‌ای پست‌های یادگیری ماشین پیشرفته‌تر و پیشرفته‌تر را پست می‌کنم، اما ما باید ساده شروع کنیم.

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