en
Feedback
PythonCV

PythonCV

Open in Telegram

✔️نمونه سوال با پاسخ ✔️نمونه سورس کد و پروژه پایتون( هوش مصنوعی، یادگیری عمیق، ماشین لرنینگ، بینایی ماشینی، دیتاساینس، فلسک، جنگو و ...) ✔️جزوه های آموزشی ✔آموزش کتابخانه های پایتون ادمین: @xalrzll سوالاتو اینجا بپرس👇 @pythoncv_gp

Show more
1 600
Subscribers
-124 hours
-67 days
-2830 days
Posts Archive
پروژه یادگیری عمیق (Deep learning) - شناسایی چهره با پایتون و OpenCV #پروژه_دیپ_لرنینگ
پروژه یادگیری عمیق (Deep learning) - شناسایی چهره با پایتون و OpenCV #پروژه_دیپ_لرنینگ

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

درست کردن اعتبار اما کسی با دانش صرف شناخته نمی‌شه. شروع کنین به کار عملی. پروژه‌های نمونه انجام بدین. دیتاهایی که بهش دسترسی دارین رو تفسیر و تحلیل کنین و نتایج و فرمول ها و پیش بینی های جالب بیرون بکشین. یا اصولا از سایت های پر داده ای مثل دیجیکالا و دیوار و شیپور و ایسام و بقیه دیتا در بیارین و یه کار جالب بکنین. اگر خودتون رو سطح بالاتر می بینین می تونین سراغ سایت هایی مثل کگل برین و اسم و رسمی به هم بزنین، حتی اون پایین مایین‌هاش – اونجاها هم به اندازه کافی مهمن!

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

یادگیری ماشین موضوع داغ این روزها، یادگیری ماشین است. الگوریتم‌هایی که بعد از اجراشون حس می‌کنیم ماشین‌ها به شکل جادویی چیزی رو یاد گرفتن که ما به خوبی ازش سردرنمیاریم. برای درک مساله، خوبه حداقل این ده الگوریتم رو بلد باشین:‌ linear regression ،logistic regression ،SVM ،random forests ،Gradient Boosting ،PCA ،k-means ،collaborative filtering ،k-NN و ARIMA. در این بخش همچنین لازمه بفهمیم که چطوری باید پرفرمنس یه مدل رو سنجید، آپتییمایز کرد، کراس ولدیت کرد، توابع خطی و غیرخطی رو دونست و جبرخطی و حسابان رو بلد بود. البته لیست دونستی‌ها اینجا زیاده مثلا overfitting و شبکه‌های عصبی و درخت تصمیم و … و البته چیزهای بزرگی مثل هوش مصنوعی و تفسیر زبان طبیعی و … اگر در دنیای پایتون هستین دونستن کتابخونه‌هایی مثل می‌تونه خط شروع خیلی خوبی به شما بده. کتاب پیشنهادی؟‌ یه نگاه به کار عملی با سایکیت لرن و تنسورفلو بندازین.

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

پایگاه‌های داده حواستون هست که دانشمند داده با داده‌ها کار می کنه دیگه؟ و خیلی وقت‌ها این داده‌ها در انواع پایگاه‌های داده هستن. اگر شما مای‌اسکوئل، پستگره و مایکروسافت اسکوئل سرور رو بلد باشین کلی جلو هستین؛ چه برسه به آگاهی عمومی در مورد چیزهایی مثل مونگو و حتی سیستم‌هایی مثل اسپارک و مپ ریدوس. یادتونه گفتم برنامه نویسی هم مهمه؟‌ خیلی وقت‌ها شما با اسکرپ کردن وب یا ای پی آی ها، دارین دیتاهای خودتون رو توی دیتابیس‌هاتون می‌ریزین.

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

اکسل بله (: به شکل بامزه‌ای اکسل به تنهایی ممکنه کلی کلی از کارهای شما رو راه بندازه. بلد بودن حرفه ای اکسل تقریبا بهترین توصیه ای است که می شه به هر کسی که با کامپیوتر کار می کنه کرد. نمونه آزاد و متن باز اکسل مایکروسافت، calc از مجموعه libreoffice است که بسیاری از قابلیت ها رو داره و در جاهایی حتی بهتره – و در جاهایی بدتر. اکسل رو خوب بلد باشین که گاهی کل کاری که دیتاساینتیست‌ها می‌کنن، تو اکسل خلاصه می‌شه (: البته اکسلی هاشون!

زبان برنامه نویسی مرتبط دیتاساینتیست‌ها، لازم دارن داده‌ها رو انگولک کنن و چه مهارتی مفیدتر از برنامه نویسی؟ توی این جامعه سوال همیشگی «آر یا پایتون» است (و البته رقبای دیگه‌ای مثل جولیا) ولی انتظار می‌ره شما [بدونین که هیچ زبانی بهتر از اون یکی نیست و هر چیزی کاربرد خودش رو داره]. اما در نهایت لازمه شما با یکی از زبان‌های مرتبط که فعلا آر یا پایتون است، آشنایی قابل قبولی داشته باشین. من به هر دو علاقه دارم ولی الان به پایتون نزدیکتر هستم. خوبی یاد گرفتن پایتون هم اینه که شما با دونستنش، در حوزه‌هایی بسیار وسیع‌تر از کار با داده‌ها، توانمند شدین. اگر دوست داشتین

این روزها دیتاساینس داره از پیک مد بودن میاد پایین و در نتیجه زمان خوبیه که تصمیم بگیرین دوستش دارین یا نه. از اونطرف دیتاساینس مسیر دیتاساینس شامل چیزهای زیادی است که هم خوبه هم بد. خوبه چون کلی مهارت متنوع توش یاد میگیرین که جاهای دیگه هم به درد می‌خوره و بده چون سخته و بزرگتر از چیزهایی مثل مثلا مدیرسیستمی. اما چیزهای سخت جالبن! پس اگر اهلش هستین، سعی کردم یه جمع بندی از چیزهایی که برای تبدیل شدن به یه دانشمند داده لازمه جمع آوری کنم. در واقع اینهای قدم های منطقی ای هستن برای وارد شدن به این حوزه؛ با یادآوری اینکه این حوزه بسیار وسیعه و شما در نهایت یه کناریش یه تخصص اصلی پیدا خواهید کرد. مثلا ممکنه شما فقط آمار بلد باشین و در یک تیم دانشمند داده حساب بشین یا فقط متخصص راه اندازی نودهای یک سیستم بیگ دیتا باشین و در تیمی کار کنین که بهش می گن گروه دیتا ساینتیست ها در حالی که شما شخصا اصلا کاری ندارین که این دیتاها چی هستن (: خلاصه… کلیت رو که بدونین، مسیر خودتون رو راحتتر پیدا می کنین. این مسیر احتمالا از اینجاها می گذره:

مسیر تبدیل شدن به یک دانشمند داده /دیتاساینتیست (Data scientist) از زبان جادی میرمیرانی
مسیر تبدیل شدن به یک دانشمند داده /دیتاساینتیست (Data scientist) از زبان جادی میرمیرانی

مرحله پنجم : یادگیری مباحث پیشرفته ماشین لرنینگ درپایان کار باید بهتون بگم که باید مباحث پیشرفته تر رو مثل الگوریتم های ماشین ، معیار های ارزیابی ، تست، آزمایش ، پیش پردازش ، جمع آوری داده و کلی مباحث دیگه که باید به خوبی بدونید. برای آشنایی با پنج الگوریتم پرکاربرد ماشین میتونید اینجا کلیک کنید و این مقاله رو مشاهده کنید در یادگیری ماشینی، الگوریتم ها دستورالعمل هایی هستند که به کامپیوتر می گویند چه کاری انجام دهد. در برخی موارد، آنها می توانند به سادگی "اگر X درست است پس Y را انجام دهید" یا فرمول های پیچیده تر که ممکن است دارای شرط و تکرار باشند، باشند. بسیاری از الگوریتم‌ها در یادگیری ماشینی اساساً با پردازش نقاط داده، داشتن یک خروجی خاص برای هر نقطه داده (مثلاً طبقه‌بندی ایمیل به عنوان هرزنامه یا عدم) و استفاده از مدل‌های ریاضی برای پیش‌بینی خروجی‌های آینده کار می‌کنند. در حال حاضر، می توانید با این مجموعه گسترده از موضوعات شروع کنید. یادگیری نظارت شده: یادگیری نظارت شده نوعی از یادگیری ماشینی است که در آن مجموعه ای از داده های آموزشی به کامپیوتر داده می شود و وظیفه آن یادگیری نحوه نگاشت این ورودی ها به خروجی های مورد نظر است. یادگیری بدون نظارت: یادگیری بدون نظارت نوعی از یادگیری ماشینی است که در آن داده‌هایی به رایانه داده می‌شود، اما به آنها گفته نمی‌شود که خروجی‌های صحیح چه چیزی باید باشد. هدف یافتن ساختار در داده ها و یادگیری از آن است. طبقه‌بندی: طبقه‌بندی وظیفه شناسایی این است که یک کالا بر اساس نمونه‌های برچسب‌گذاری شده به کدام دسته تعلق دارد. نمونه هایی از این برچسب ها به شرح زیر است: هرزنامه در مقابل هرزنامه نیست، تومورهای بدخیم در مقابل خوش‌خیم، و غیره. تشخیص الگو: تشخیص الگو وظیفه یادگیری ماشینی برای شناسایی الگوها در داده ها است. داده ها شامل متغیرهای ورودی (مانند پیکسل) و متغیرهای هدف (مانند بدخیم بودن یا نبودن تومور) است. سیستم‌های توصیه‌گر: سیستم‌های توصیه‌کننده برنامه‌هایی هستند که با توجه به مجموعه‌ای از اولویت‌های موجود، پیش‌بینی می‌کنند که کاربر چه مواردی را می‌خواهد. این نوع سیستم به طور گسترده در جایزه نتفلیکس، در موتورهای جستجو مانند گوگل یا بینگ، در شبکه های اجتماعی برای پیش بینی توصیه های دوستان استفاده می شود. یادگیری تقلیدی: یادگیری تقلیدی روشی از یادگیری ماشینی است که شامل یادگیری از نمایش است. از مشاهدات رفتار یک متخصص برای یادگیری نحوه انجام وظایف بدون هیچ دستورالعملی در مورد نحوه حل آنها استفاده می کند. نتیجه زمینه یادگیری ماشینی گسترده است و چیزهای زیادی برای یادگیری وجود دارد. بنابراین، بهترین راه برای شروع سفر یادگیری ماشینی خود این است که با هدف نهایی در ذهن شروع کنید، مانند «من می‌خواهم داده‌های کسب‌وکارم هوشمندتر شوند» یا «من به یک سیستم توصیه‌کننده برای وب‌سایت خود نیاز دارم». مهدی مشایخی ویرگول

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

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

مرحله دوم: یادگیری کتابخانه های پرکاربرد تا اینجا که پایتون یادگرفتید لازمه تا کتابخانه های که مورد نیاز یادگیری ماشین هست رو یادبگیرید تا برای انجام مباحث ماشین بهتون کمک کنه ، لازمه بدونید که لازم نیست صد درصد این کتابخانه ها رو یادبگیرید و باید درک نسبی از این کتابخانه ها داشته باشید تا مسائلی مثل آمار و احتمال رو به راحتی محاسبه کنید یا به آسانی بتونید دیتا ها رو به صورت گرافیکی نمایش بدید و بتونید درک بهتری از داده ها داشته باشید. لیستی از کتابخانه های از پایتون که باید آنها رو یادبگیرید و به خوبی بتونید باهاشون ارتباط برقرار کنید. نام پای (NumPy) : برای محاسبات ریاضی و آماری استفاده میشود پانداس (Pandas) : برای دیتا ها و اطلاعات و دستبندی سای پای (SciPy) : برای محاسبات ریاضیات پیشرفته تر و آماری اسکی لرن (Scikit learn) : الگوریتم ها و پیش پردازش های ماشین متپلات لیب (Matplotlib) : نمایش گرافیکی نمودار ها سیبورن (Seaborn) : نمایش گرافیکی نمودار ها

مرحله اول : یادگیری زبان برنامه نویسی پیشنهاد من به شما زبان برنامه نویسی پایتون(Python) هست ، به این دلیل که این زبان کتابخانه های زیادی برای یادگیری ماشین داره و امکانات زیادی میتونه به شما بده و از جهتی یادگیری زبان پایتون بسیار راحتتر نسبت به زبان های برنامه نویسی دیگه هست. یکی دیگر زبان های برنامه نویسی برای این حوزه زبان برنامه نویسی آر (R) هست که بیشتر و برای آمار خوبه و اصلا توصیه نمیکنم که در ابتدا به سمت این زبان برید. شما باید در پایتون با مباحث زیر آشنایی خوبی داشته باشید و مفاهیم رو به خوبی درک کنید تا به مشکل نخورید! متغیر ها (Variables) انواع داده ها (Data Types) اعداد در پایتون (Numbers) متون در پایتون (Strings) عملگر ها (Operators) لیست ها (Lists) تاپل ها (Tuples) ست ها (Sets) دیکشنری ها (Dictionaries) دستورات شرطی (If/Else ) حلقه ها (Loops) توابع (Functions) آرایه ها (Arrays) کلاس ها و شئ گرایی (Classes/Objects) بریم مرحله بعد

مسیر یادگیری ماشین(Machine Learning)
مسیر یادگیری ماشین(Machine Learning)

پیش پردازش داده‌ها دومین قدم در مسیر یادگیری هوش مصنوعی اکنون که می‌توانید داده‌ها را دستکاری کنید، زمان آن رسیده است که تکنیک‌های مختلفی را یاد بگیرید که به شما کمک می‌کنند تا داده‌های بدون ساختار را به داده‌های ساخت‌یافته تبدیل کنید تا بتوانید با استفاده از الگوریتم‌های یادگیری ماشین، بینش‌هایی از آن‌ها به دست آورید. چنین روش‌هایی عبارتند از: -تجزیه‌و‌تحلیل مؤلفه‌های اصلی -کاهش ابعاد -عادی‌سازی -پاک‌سازی داده‌ها، مدیریت مقادیر از‌دست‌رفته و غیره -برآوردگرهای بی‌طرفانه -ویژگی‌های استخراج -نویز‌زدایی و نمونه‌برداری این تکنیک‌ها به شما کمک می‌کنند تا داده‌های خود را برای انجام تجزیه‌و‌تحلیل بیشتر سازماندهی کنید. از اینجا به بعد ۳ جهت پیش پای شما قرار دارد: 1. یادگیری ماشینی (Machine learning) 2. تبدیل شدن به دانشمند داده (Data science)، و یا 3. یک مهندس داده (Data engineer). در واقع این ۳ راه، مهم‌ترین روش‌های کسب درآمد از هوش مصنوعی محسوب می‌شوند.

اولین قدم در مسیر یادگیری هوش مصنوعی بهترین راه برای شروع با هوش مصنوعی این است که اصول را یاد بگیرید. می‌توانید با ریاضیات پایه شروع کنید و سپس ترجیحاً روی یک زبان برنامه‌نویسی دست بگذارید. همیشه توصیه می‌شود پایتون را دنبال کنید زیرا جامعه بزرگ و حامی آن و تعداد زیادی بسته و کتابخانه که در طول سفر به شما کمک می‌کنند، در دسترستان قرار دارند. شما باید موارد زیر را برای فهم هوش مصنوعی یاد بگیرید: -ماتریس‌ها و مبانی جبر خطی -حساب دیفرانسیل و انتگرال -نظریه گراف -بردارها -آمار و احتمال جدای از این موارد چند ابزار وجود دارد که ممکن است لازم باشد یاد بگیرید که به شما در مدیریت بهتر داده‌ها کمک می‌کنند. بر این اساس می‌توانید چند مورد زیر را پیگیری کنید: -مبانی پایگاه داده -SQL و Joins در SQL -پایگاه‌های اطلاعاتی رابطه‌ای و غیر رابطه‌ای -پایگاه‌های داده NoSQL -داده‌های جدولی (اکسل) -فریم‌های داده و سری داده‌ها -فرمت‌های داده JSON، CSV، XML -عبارات با قاعده -استخراج، تبدیل و بارگذاری داده‌ها پس از بررسی این موضوعات، نوبت به یک غواصی عمیق در اصول یک زبان برنامه‌نویسی می‌رسد که می‌تواند داده‌ها را به شیوه‌ای یکپارچه، اداره کند. ما معمولاً دو گزینه داریم – پایتون و R. بیشتر شرکت‌ها پایتون را به‌دلیل پشتیبانی بی‌شماری که ارائه می‌کند، ترجیح می‌دهند. بر این اساس باید اصول پایتون یعنی عبارات، متغیرها، ساختارهای داده، توابع، بسته‌هایی مانند پیپ و غیره را یاد بگیرید. پس از یادگیری اصول اولیه، در مرحله بعد باید چند مورد مهم برای مدیریت داده مانند پاندا، NumPy و matplotlib را یاد بگیرید. در مرحله بعد، باید نحوه استفاده مؤثر و کارآمد از نوت بوک ها/آزمایشگاه‌های Jupyter را یاد بگیرید. حالا شما به‌خوبی مجهز هستید تا قدم بزرگ بعدی را در مسیر یادگیری هوش مصنوعی بردارید.