Torchino
166 subscribers
10 photos
4 videos
4 files
26 links
شما میتوانید از اخبار روز دنیا در رابطه با هوش مصنوعی در اینجا خبر دار شوید 😉

میتونید سوالاتتون را از اینجا بپرسید
https://t.me/gap_torchino
Download Telegram
سلام دوستان دیگه از امروز میخوام استارت کار را بزنم و کلی پست بزارم
بریم برای اولین پست امروز 😉
🔥3
خب امروز می‌خوایم در رابطه با یکی از بهترین و برترین کتابخانه ی یادگیری عمیق و یادگیری ماشین صحبت کنم🔥
خب ما دوتا کتابخانه ی مشهور و پرکاربرد در این دو زمینه داریم
که اشم یکیشون pytorch و یکی دیگه tensorflow هست
در این قسمت میخوام این دوتا را معرفی کنم و بگم چرا توی یادگیری ماشین هم کاربرد داره !!

خب بریم برای مقایسه :
‌‌‌‌‌‌‌‌‌‌پایتورچ یکی از کتابخانه های قدرتمندی هست که فیسبوک توسعه داده
و میشه گفت یک کتابخانه ی خیلی بروز و خوب هست
این کتابخانه در آخرین ورژن خود یعنی 2.4 در پایتون 3.12 موجود هست که مثل همیشه بهتر، سریعتر و قدرتمند تر از قبل هست
و می‌تونید این‌کتابخانه را از سایت اصلی خودش طبق سیستم عاملی که دارید میتونید دانلود کنید 🔥
و در آخر اینکه پایتورچ سینتکس پایتونیک داره

و اماااااا

تنسورفلو هم یکی از قدرتمند ترین کتابخانه های دنیای هوش مصنوعی هست که توسط محققان گوگل توسعه داده شده
و این کتابخانه هم دست کمی از پایتورچ نداره و رقابت زیادی با هم دارند
این کتابخانه هم در آخرین ورژن خود یعنی x.2 قرار دارد (این سایتش تحریم هستیم و ورژن دقیقش را نمیدونم 😂💔)

#pytorch
#tensorflow
#ai
#part_1
@learn_ai1
20🔥4
تا زمانی که لایک ها بالای ۵ تا بره پست بعدی را نمیزارم🥹
پس اون لایک را بزن لطفا🥹😂❤️
10
خب ما تا حدی با این کتابخانه ها آشنا شدیم و می‌تونید برید توی گوگل، یوتیوب سرچ بزنید و مقایسه دقیقتری را ببینید!

و اما در رابطه با اینکه مگه این‌کتابخانه ها برای یادگیری عمیق نبود؟ چطور من گفتم توی یادگیری ماشین هم کاربرد داره؟

خب جوابش میشه:
کسانی که میخوان دانشمند داده(مقایس را بالا انجام دادم) بشن و الگوریتم هایی را از صفر یا به قول معروف from scratch بنویسن یا اینکه مثلا بهینه ساز یا ... چیزی که وجود نداره را خودشون به نوعی خلق کنند می‌توانند از پایتورچ، تنسورفلو برای محاسبات خودشون استفاده کنن

در واقع یادگیری ماشین همون کوچیک شده ی یادگیری عمیق هست (استاد مدحج جاوااسکریپت) فان

در واقع یادگیری عمیق محاسبات پیچیده ترین را نسبت به یادگیری ماشین انجام میده
برای مثال در یادگیری ماشین
شما می‌آید و اینکارا را برای دیتاست mnist انجام میدید تا بتونید یک مدلی را ترین و ...کنید
توی یادگیری ماشین:
شما خودتون داده ها را پردازش میکنید و جدا میکنید و کارای دیگه ...
ویژگی های مهم را خودتون باید پیدا کنید (با استفاده از ماتریس درهم ریختگی) پیدا کنید و عملیات های مختلفی را روش اجرا کنید
و و و هزار تا کار دیگه

ولی

در یادگیری عمیق ما تمام این کار ها را می‌سپاریم به الگوریتم های فوق پیشرفته مثل convolution، rnn, .......
بله، تمام این کار ها را این این نوع شبکه های عصبی انجام میدن

___
حالا اگه بخوایم یادگیری ماشین را وارد این کتابخانه های گودرتمند کنیم برای دانشمندان داده خیلی خیلی خیلی بهتر و سریعتر از numpy, pandas و غیره هست
برای مثال اگه بخوای یک شبکه ی ساده خطی(رگرسیون) را به صورت scratch انجام بدی خیلی راحت میتونی توی پایتورچ این کد را بزنی:
import torch
model=torch.matmul(x,w)+b

ولی توی نامپای هم دقیقا همین کد هست
import numpy as np
model=np.matmul(x,w)+b

پس تفاوتش توی چیه؟🤔
راهنمایی: چیزی هست که حیوانات خیلی سریع مثل شیر و ببر یا ماشین هایی مثل بوگاتی و فراری و ... دارن

خب اگه تونستی حدس بزنی افرین چون بالاتر جوابش را گفته بودم ولی خب جوابش میشه توی سرعت هست!!!
بله توی سرعت !!
سرعت اجرای دقیقا همین کد توی پایتورچ و نامپای به این صورت هست:
pytorch: 0.0019683837890625
numpy: 0.007978677749633789

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

#ai
@learn_ai1
15👍6👎1
سلام.
تا حالا به این فکر کردی که بخوای یک روزی دیتاست خودتت را جمع کنی و روی اونها مدل بسازی و ترین‌کنی؟

من یک‌تصمیم‌گرفتم که بیام دقیقا همین کار را انجام بدم!
اره، من دیتاست خودم را دارم که توی هیچ مکانی نمیتونی پیداش کنی !!

خب اصلا قراره چی کار کنم؟ چرا بهتون اینو میگم؟
من دیتاستی که دارم اینه :
در حوزه ی پردازش تصویر است
دیتاست عکس از یک اسکناس ۱۰۰ هزار تومانی هست
سایز دیتاست تقریبا سه هزار تا عکس متفاوت هست !!و ...

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

⚠️زمان پست گذاشتم مشخص نیست ولی صد درصد زود تر از ۳ روز هست یعنی شاید هر روز پست بزارم یا شاید یک روز در میون بزارم ⚠️

ادامه دارد ...
🔥107
مرحله ی اول این کار را امشب بهتون میگم که چطور باید دیتاست خودتون را درست کنید اونم با 3,000 یا حتی 10,000 هزار تا عکس!!!!

خب شاید بگید که بیکارم و نشستم تقریبا ۴ هزار تا عکس از یک اسکناس گرفتم ؟!
خب معلومه که نه!!!
من با چندیدن استاد پرتجربه(که ازشون بابت راهنمایی هایی که کردن واقعا ازشون ممنونم🙏) در یکی از گروه های هوش مصنوعی، بهم این راهی که بهتون میگم را گفتن !!!

راه کار:
لازم‌نیست بشینی تک تک توی گوشیت عکس بگیری !!
فقط فیلم بگیر !! همین !
آره درسته، تو با فیلم‌گرفتن تقریبا ۱ دقیقه ای میتونی کلی عکس درست کنی که برای دیتاست ازشون استفاده کنی !!
خب میگی چطوری مگه میشه؟
آره!
شما وقتی که وارد دوربین گوشیتون میشید و وارد قسمت فیلم برداری میشید به احتمال زیاد اون بالا تعداد فریم ها را میزنه !
برای مثال برای گوشی من ۳۰ فریم بر ثانیه هست .
پس اگه من یک دقیقه فیلم بگیرم یعنی ۶۰ ثانیه ! با یک معادله ی ساده تعداد عکس های دیتاست مشخص میشه
شما باید تعداد فریم را × ثانیه هایی که فیلم گرفتید کنید .
برای مثال :
۳۰ × ۶۰ = ۱۸۰۰
خب پس برای یک دقیقه ۱۸۰۰ عکس به وجود میاد !!!
بسیار هم عالی دیگه چی میخوای؟


خب عکس هات را گرفتی فکر کردی دیگه کار تموم شد؟
نه داداش، تازه شروع شده وایستا تند نرو ⭕️
کلی موارد دیگه وجود داره که باید در نظر بگیری!!!

ادامه دارد ...
🔥106
موارد کلی که باید در نظر بگیری :
۱.کیفیت دوربینی که با اون فیلم را میگیرید باید برابر باشه با کیفیت عکس ورودی به مدل!!
راه کار:
میتونی یک کد بنویسی که موقعی که کاربر عکسی را وارد میکنه اون عکس را بگیره و قبل اینکه وارد مدل بشه بکشه کنار و سایزش را تغییر بده به سایز(کیفیتی) که برای عکس های آموزشی استفاده کردید !

--------------------------------------------
۲.شما باید موقع فیلم برداری از تمام جهات فیلم بگیرید و نور را باید کم و زیاد کنید و فاصله ی دوربین تا اسکناس (شی مورد نظر خودتون) را کم و زیاد کنید
چون اگه کاربر یک عکس از اسکناس خودش بده که زیر نور آفتاب هست بدجوری به دردسر میوفتید!! چرا؟ چون که اصلا مدل همچین چیزی ندیده !!
--------------------------------------------
۳.پشت صحنه ی اون آبجکت خودتون برای مثال اسکناس ما باید سفید باشه !!!
حالا میگی چرا سفید ؟
چون رنگ اسکناس با پشت صحنه ی سفید خیلی بهتر تشخیص داده میشه
خب یکی میگه شاید کاربر اسکناس را روی دستش گذاشت و عکس گرفت برای ما فرستاد !!
راه کار:
بجای اینکه همون اول سراغ خود آبجکت برید اول اونو دیتکت کنید و پشت صحنه ی اونو حذف کنید !!! حالا فقط توی عکس کاربرت یک اسکناس هست و پشت صحنه سفیده !
--------------------------------------------

خب اگه شما هم‌موارد دیگه ای را میدونید بگید شاید بدرد خورد .

خب تبریک شما اولین قدمتون را برداشتید
الان‌میدونید که برای جمع آوری دیتاست خودتون باید چیکار‌ کنید و چه مواردی را در نظر بگیرید !!!
حالا مرحله ی بعدی چیه؟
مرحله ی بعد (البته بعد از تبدیل فیلم به عکس) باید بریم و داده ها را پیش پردازش کنیم و تا حد ممکن تمیز کنیم !!
🔥9👍8
ادامه ی پست قبلی ...

خب الان که دیتاست خودمون را جمع کردیم و بیشتر از هزار تا عکس وجود داره
بهتره برای پیش پردازش داده ها چیکارا کنیم؟
خب بنظر بهتره این کار ها را انجام بدیم:

۱.سایز عکس ها را به سایز های مشخص تبدیل کنیم.

دلیل: امکان داره اون وسط که دارید فیلم میگیرید به صورت اتوماتیک کیفیت فیلم عوض بشه(بعضی گوشی ها این قابلیت را داره) و اینکه شاید موقع فیلم برداری کادر فیلم برداری خارج از محوطه ی سفید باشه! یعنی رنگ دیگه ای به‌جز سفید در پشت صحنه هست!!
--------------------------------------------
۲.تا حد امکان داده های پرت را باید حذف کنیم !!

دلیل: شما فکر کنید که از ۲۶۵۰ تا عکسی که دارید فقط و فقط ۵۰ تا از اون عکس ها پرت باشن !! خب این به این‌ معنی هست که اون ۵۰ تا عکس ویژگی هاشون نسبت به عکس های دیگه خیلی متفاوت است خب میگید اینجوری که خوبه مدل میاد و ویژگی های بیشتری را یاد میگیره
ولی خب بهتره بگیم با ۵۰ تا عکس مدل نمیتونه یاد بگیره و حتی به جاده خاکی کشیده میشه(underfitting or overfitting)!! حالا باز اگه ۲۰۰ تا بود می‌تونستیم یک‌کاری کنیم ولی ۵۰ تا خیلی کمه !!
--------------------------------------------
۳.باید از شر داده های پرت خلاص بشیم!
شما وقتی که میانگین انحراف داده هاتون را گرفتین با std اگه دیدید خیلی عدد خروجی خیلی زیاد هست باید داده ها را نرمال سازی کنیم، تا از شر اینا خلاص بشیم
اگه میخواید با چشم هاتون ببینید پراکندگی داده هاتون چه‌قدر همون داده ها را پلاتش را می‌کشید و با چشمتون می‌بینید که مثلا نقاط (هر داده) نزدیک به هم هست یا یکی اون طرف یکی این‌ طرف هست

ادامه دارد ...
15
خب پست بالا گفتم که باید نرمال کنیم داده ها!
اول بریم ببینیم منظور از نرمال کردن چیه؟
نرمال کردن یعنی اینکه بیایم کل داده ها را بین 0, 1 یا -1, 1 تنظیم کنیم
که این کار باعث میشه پراکندگی داده ها خیلی کمتر بشه.
چرا؟ چون معلومه دیگه همشون بین ۰ و ۱ هستن
شما با این فرمول میتونید داده های خودتون را نرمال کنید :
norm_data = (data - np.min(data) / np.max(data) - np.min(data)

تفاوت انحراف بعد از نرمال کردن داده ها و قبل:
قبل از نرمال کردن داده ها: 21.18
بعد از نرمال کردن داده ها: 0.088


کاربرد نرمال کردن داده ها هم که گفتیم که از overfitting جلوگیری میکنه و داده های پرت را بشدت کاهش میده بخاطر اینکه همه را بین یک مقیاس کوچیک تر تنظیم میکنه مثل ۰ و ۱ و دیگه داده های خیلی پراکنده وجود نداره!!

ادامه دارد ...
🔥9👍7
دوستان من هم زمان که کد را می‌نویسم یک پست مرتبط براتون میزارم
حالا بنظرتون:
Anonymous Poll
60%
کد را هر قسمتش را که مینویسم در کانال بفرستم.
40%
کد را آخر پروژه بفرستم که کامل تره.
ادامه ی پست قبلی ...
خب آقا اومدیم و داده ها را نرمال سازی کردیم .
حالا باید بیاین و داده ها را به دو دسته ی train, test تقسیم کنید.
خب درصد بندی عاقلانه ۸۰ به ۲۰ هست
یعنی ۸۰ درصد داده برای آموزش مدل و ۲۰ درصد داده ها برای تست مدل.

خب آقا الان تقسیم بندی هم کردیم، وقتش رسید که بریم یک مدل خیلی ساده را ترین کنیم.
خب حالا بنظرتون کدوم مدل بدرد ما میخوره؟🧐
ادامه دارد ...
👍9🔥5
پیرو پیام قبلی باید مدلمون را انتخواب کنیم !
من مدل logistic regression انتخواب میکنم
دلیل:
1.داده هامون طوری هست که این مدل خیلی خیلی بهتره. چونکه کلا قراره دو دسته را کلاسیفیکشن انجام بده قراره بگه که بله یا خیر !!! اسکناس صد تومانی هست یا نه؟! همین
--------------------------------------------
2.سادگی مدل، این مدل خیلی ساده هست و نوشتنش هم راحت هست
--------------------------------------------
3.سومیش را شما بگید :

ادامه دارد ...
8🔥3
خب برای آخرین پست امروز
دوستان این پروژه قراره در ۳ ورژن متفاوت اجرا بشه !!
این ورژن‌ اولیه هست که داریم جلو می‌بریم و اصلا کار خاصی نمی‌کنیم و مقاله ی نهایی که قراره نوشته بشه روی ورژن سومی هست
ورژن دوم پیشرفته ی همین پروژه هست.
ولی ورژن سوم جدا از اینا هست و واقعا پروژه ی بزرگی هست و این ورژن سومی قراره سوپرایز باشه !!!

زمان تقریبی ورژن‌اول چند روز دیگه ...

زمان تقریبی ورژن دوم چند هفته ی بعد

زمان تقریبی ورژن سوم چند ..........

و ازتون خواهش میکنم که حمایت کنید و ری اکشن بزنید
ورژن سوم چون قراره داخل یک پروژه ی دیگه و جداگانه که تا چند هفته ی دیگه قراره رو نمایی کنیم اونجا استفاده بشه پس سورس کد را در اختیار نمیزارم !!!
ولی اگه هر وقتی که خودتون حمایت کنید و تعداد ممبر های کانال به بالای ۱۰۰۰ (هزار) نفر برسه اونوقت سورس کد و دیتاست کاملا کاستوم خودم (وقتی میگم کاملا کاستوم یعنی زیر سنگ را بگردی هم داده هایی که من استفاده میکنم را نمیتونی پیدا کنی) را به صورت رایگان در اختیار شما دوستان میزارم

فعلا بدرود 🫡
11👍4
صبح زیباتون بخیر 🌱
در حیرتم که توی این ۲۱۷ ممبر عزیز ۱۹ نفر کانال را خفه (بی صدا) کردن
ولی مشکل اینه چرا ویو های پست کمه؟🥴

ما داریم زحمت میکشیم 🙌
پلیز حمایت کنید .
👍3😱3💔2
خب من داشتم کد مدل را می‌نوشتم که به یک نکته ای بر خوردم و گفتم که به شما هم !
ما در واقعیت باید تعداد پارامتر های w برابر باشه با تعداد ویژگی ها .
خب دلیل اینکه باید برابر باشه با تعداد ویژگی ها اینه که باید هر پارامتر بتونه یک ویژگی را به نحوی درک کنه و الگو های درونش را پیدا کنه
حالا من اینجا اومدم و عکس ها را تبدیل با یک ماتریس کردم
خب من الان‌دوتا راه جلوم هست

1.اینکه بیام برای هر ویژگی یک‌پارامتر بزارم که میشه ۵۰۰ تا پارامتر برای اینکه عکس را پردازش کنه (سایز عکس ۵۰۰ در ۵۰۰ هست)

2.اینکه بیام‌کلا یک پارامتر انتخواب‌ کنم برای کل ۵۰۰ ویژگی

خب تفاوت این دوتا را الان راحت برسی میکنم
حالت اول مثل اینه که توی یک‌مهمونی هر آدم یک بشقاب داره که توش غذای خودش هست
ولی حالت دوم مثل این هست کل ۵۰۰ مهمون توی یک بشقاب بشینن غذا بخورن!!!

خب اگه حالت اول را انتخواب کنید خیلی به نفعتون هست ! چون که مدل خیلی راحت تر یاد میگیره و دقتش بالا میره
ولی بایک پارامتر دست و پا شکسته کار میکنه !

البته یک چیزی را باید در نظر بگیریم که در یادگیری عمیق همیشه تعداد پارامتر ها برابر با تعداد ویژگی ها نیست ! چون لایه های بیشتری داره.

پس همیشه به تعداد ویژگی ها پارامتر بزار!
👍52
خب سلام به دوستان عزیز ظهرتون بخیر
امروز ورژن پروژه تکمیل میشه و تا چند روز دیگه ورژن دوم شروع میشه!
ولی قبل تموم کردن این پروژه یک نظر سنجی بریم.
دوستان شما بین پردازش متن و پردازش تصویر کدوم را انتخواب میکنید ؟
صرفا توی این نظر سنجی علاقه را کنار بزاید !!
Anonymous Poll
49%
پردازش تصویر (camputer vision)
51%
پردازش متن (nlp, llm)
🤣7
speech_and_language_processing_third_edition_@techbookology.pdf
22.1 MB
#کتاب
#nlp
یکی از برترین کتاب های آموزش پردازش متن هست
در این‌کتاب، کد های عملی به کار رفته و مطالب را به خوبی بیان‌کرده
و در هر فصل یک‌تمرینوجود داره که اگه تا آخر فصل ها بتونید کل تمرین هارا بخوبی انجام بدید میتونید یک هوش مصنوعی ساده ی پردازش متن بنویسید
و در متن در این‌ کتاب‌ برای آموزش چندیدن پروژه را آورده و جلو برده
4👍3