📌 RAG Showdown: Vector vs. Graph - Shaping the Future of AI Applications! 🔥
پیادهسازی RAG (ترکیب بازیابی و تولید) با دو روش متفاوت امکانپذیر است: یکی با استفاده از دیتابیس برداری و دیگری با استفاده از گراف دانش. هر دو روش با هدف بازیابی دادههای مرتبط و تولید پاسخ دقیق به کاربر استفاده میشوند، اما هر کدام ویژگیهای خاص خود را دارند:
💠 RAG با دیتابیس برداری:
در این روش، پرسش به بردار تبدیل شده و جستجو بر اساس شباهت معنایی بین بردارها صورت میگیرد. این روش برای دادههای غیرساختاریافته و بزرگ کارایی بالایی دارد و به ارتباطات مستقیمی بین دادهها نیاز ندارد.
🔗 RAG با گراف دانش:
اینجا از روابط و ساختار دادهها استفاده میشود. جستجو در گراف انجام شده و نهادها و ارتباطات مرتبط استخراج میشوند. این روش برای حوزههایی که نیاز به فهم عمیق روابط دارند، بسیار مفید است.
🔍 جمعبندی:
هر دو روش قابل پیادهسازی در پلتفرمهای دادهای مانند SingleStore هستند و بسته به نیازهای شما، میتوانید یکی از این روشها را انتخاب کنید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
پیادهسازی RAG (ترکیب بازیابی و تولید) با دو روش متفاوت امکانپذیر است: یکی با استفاده از دیتابیس برداری و دیگری با استفاده از گراف دانش. هر دو روش با هدف بازیابی دادههای مرتبط و تولید پاسخ دقیق به کاربر استفاده میشوند، اما هر کدام ویژگیهای خاص خود را دارند:
💠 RAG با دیتابیس برداری:
در این روش، پرسش به بردار تبدیل شده و جستجو بر اساس شباهت معنایی بین بردارها صورت میگیرد. این روش برای دادههای غیرساختاریافته و بزرگ کارایی بالایی دارد و به ارتباطات مستقیمی بین دادهها نیاز ندارد.
🔗 RAG با گراف دانش:
اینجا از روابط و ساختار دادهها استفاده میشود. جستجو در گراف انجام شده و نهادها و ارتباطات مرتبط استخراج میشوند. این روش برای حوزههایی که نیاز به فهم عمیق روابط دارند، بسیار مفید است.
🔍 جمعبندی:
هر دو روش قابل پیادهسازی در پلتفرمهای دادهای مانند SingleStore هستند و بسته به نیازهای شما، میتوانید یکی از این روشها را انتخاب کنید.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🚀 الگوریتم بلمن فورد (Bellman-Ford)
الگوریتم بلمن فورد یکی از الگوریتمهای مهم برای یافتن کوتاهترین مسیرها در گرافهای وزندار است. 💡 این الگوریتم به شما اجازه میدهد که از یک رأس شروع کرده و مسیرهای با کمترین وزن را به تمام رأسهای دیگر گراف پیدا کنید. یک ویژگی بارز بلمن فورد این است که با یالهای دارای وزن منفی هم به خوبی کار میکند و حتی چرخههای منفی را هم میتواند شناسایی کند. 🔍
🎯 مراحل اجرای الگوریتم
مقداردهی اولیه: ابتدا فاصله (وزن مسیر) از رأس شروع به خودش برابر با صفر و برای سایر رأسها بینهایت در نظر گرفته میشود. 🟢
بهروزرسانی وزنها: الگوریتم برای هر یال در گراف، |V|-1 بار تکرار میشود، که در آن |V| تعداد رأسها است. در هر مرحله، اگر مسیر کوتاهتری یافت شود، وزن آن مسیر بهروزرسانی میشود. 🔄
بررسی چرخههای منفی: در پایان، همه یالها یک بار دیگر بررسی میشوند. اگر وزنی تغییر نکرد، گراف چرخه منفی ندارد؛ در غیر این صورت، الگوریتم چرخه منفی را شناسایی کرده و میتواند اطلاع دهد که گراف شامل یک چرخه منفی است. ⚠️
⏱️ پیچیدگی زمانی
پیچیدگی زمانی الگوریتم بلمن فورد O(V×E) است، که در آن V تعداد رأسها و E تعداد یالهاست. به دلیل این پیچیدگی زمانی، این الگوریتم نسبت به الگوریتمهایی مثل دایکسترا کمی کندتر است، اما میتواند یالهای منفی را مدیریت کند. 🕰
🌐 کاربردهای بلمن فورد
شناسایی چرخههای منفی: این ویژگی در مدلسازی مسائل مالی و اقتصادی کاربرد دارد، جایی که چرخههای منفی ممکن است نشاندهنده فرصتهای آربیتراژ یا خطاهای سیستمی باشند. 📉
یافتن کوتاهترین مسیرها در شبکههای دارای وزن منفی: این ویژگی در شبکههای جریان کالا و مسیریابی بهینه در سیستمهای ارتباطی استفاده میشود. 🌍
📝 مثال کاربردی
فرض کنید یک گراف با یالهای دارای وزن مثبت و منفی داریم. الگوریتم بلمن فورد میتواند از یک رأس شروع کرده و به تمامی رأسهای دیگر دسترسی پیدا کند و اگر چرخه منفیای وجود داشته باشد، آن را شناسایی کند. 🔄
در کل، الگوریتم بلمن فورد با تواناییهای منحصربهفرد خود برای شناسایی یالهای منفی و چرخههای منفی در بسیاری از کاربردهای واقعی مثل مسیریابی در شبکهها و تحلیل اقتصادی بسیار مفید است.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
الگوریتم بلمن فورد یکی از الگوریتمهای مهم برای یافتن کوتاهترین مسیرها در گرافهای وزندار است. 💡 این الگوریتم به شما اجازه میدهد که از یک رأس شروع کرده و مسیرهای با کمترین وزن را به تمام رأسهای دیگر گراف پیدا کنید. یک ویژگی بارز بلمن فورد این است که با یالهای دارای وزن منفی هم به خوبی کار میکند و حتی چرخههای منفی را هم میتواند شناسایی کند. 🔍
🎯 مراحل اجرای الگوریتم
مقداردهی اولیه: ابتدا فاصله (وزن مسیر) از رأس شروع به خودش برابر با صفر و برای سایر رأسها بینهایت در نظر گرفته میشود. 🟢
بهروزرسانی وزنها: الگوریتم برای هر یال در گراف، |V|-1 بار تکرار میشود، که در آن |V| تعداد رأسها است. در هر مرحله، اگر مسیر کوتاهتری یافت شود، وزن آن مسیر بهروزرسانی میشود. 🔄
بررسی چرخههای منفی: در پایان، همه یالها یک بار دیگر بررسی میشوند. اگر وزنی تغییر نکرد، گراف چرخه منفی ندارد؛ در غیر این صورت، الگوریتم چرخه منفی را شناسایی کرده و میتواند اطلاع دهد که گراف شامل یک چرخه منفی است. ⚠️
⏱️ پیچیدگی زمانی
پیچیدگی زمانی الگوریتم بلمن فورد O(V×E) است، که در آن V تعداد رأسها و E تعداد یالهاست. به دلیل این پیچیدگی زمانی، این الگوریتم نسبت به الگوریتمهایی مثل دایکسترا کمی کندتر است، اما میتواند یالهای منفی را مدیریت کند. 🕰
🌐 کاربردهای بلمن فورد
شناسایی چرخههای منفی: این ویژگی در مدلسازی مسائل مالی و اقتصادی کاربرد دارد، جایی که چرخههای منفی ممکن است نشاندهنده فرصتهای آربیتراژ یا خطاهای سیستمی باشند. 📉
یافتن کوتاهترین مسیرها در شبکههای دارای وزن منفی: این ویژگی در شبکههای جریان کالا و مسیریابی بهینه در سیستمهای ارتباطی استفاده میشود. 🌍
📝 مثال کاربردی
فرض کنید یک گراف با یالهای دارای وزن مثبت و منفی داریم. الگوریتم بلمن فورد میتواند از یک رأس شروع کرده و به تمامی رأسهای دیگر دسترسی پیدا کند و اگر چرخه منفیای وجود داشته باشد، آن را شناسایی کند. 🔄
در کل، الگوریتم بلمن فورد با تواناییهای منحصربهفرد خود برای شناسایی یالهای منفی و چرخههای منفی در بسیاری از کاربردهای واقعی مثل مسیریابی در شبکهها و تحلیل اقتصادی بسیار مفید است.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
توضیح مختصری از مصرف پشته در الگوریتمهای مرتبسازی با استیکر مرتبط برای هر کدام آوردهام:
🌟 مرتبسازی انتخابی (Selection Sort)
- بازگشتی نیست و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (فقط فضای ثابت نیاز دارد).
🛁 مرتبسازی حبابی (Bubble Sort)
- بازگشتی نیست و نیازی به پشته ندارد.
- پیچیدگی فضایی: O(1) (فضای ثابت).
✍️ مرتبسازی درجی (Insertion Sort)
- بازگشتی نیست و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (صرفاً فضای ثابت).
📐 مرتبسازی ادغامی (Merge Sort)
- بازگشتی است و برای فراخوانیهای بازگشتی از پشته استفاده میکند.
- پیچیدگی فضایی: (O(n (نیازمند آرایه موقت)، فضای پشته: O(log n).
⚡️ مرتبسازی سریع (Quick Sort)
- بازگشتی است و از پشته استفاده میکند.
- پیچیدگی فضایی در بدترین حالت: O(n)؛ در حالت متوسط: O(log n)).
🔺 مرتبسازی هرمی (Heap Sort)
- غیربازگشتی است و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (فقط فضای ثابت نیاز دارد).
به طور خلاصه، الگوریتمهای بازگشتی مثل Merge Sort و Quick Sort به پشته نیاز دارند، در حالی که سایر الگوریتمهای غیربازگشتی بدون استفاده از پشته و در فضای ثابت اجرا میشوند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🌟 مرتبسازی انتخابی (Selection Sort)
- بازگشتی نیست و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (فقط فضای ثابت نیاز دارد).
🛁 مرتبسازی حبابی (Bubble Sort)
- بازگشتی نیست و نیازی به پشته ندارد.
- پیچیدگی فضایی: O(1) (فضای ثابت).
✍️ مرتبسازی درجی (Insertion Sort)
- بازگشتی نیست و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (صرفاً فضای ثابت).
📐 مرتبسازی ادغامی (Merge Sort)
- بازگشتی است و برای فراخوانیهای بازگشتی از پشته استفاده میکند.
- پیچیدگی فضایی: (O(n (نیازمند آرایه موقت)، فضای پشته: O(log n).
⚡️ مرتبسازی سریع (Quick Sort)
- بازگشتی است و از پشته استفاده میکند.
- پیچیدگی فضایی در بدترین حالت: O(n)؛ در حالت متوسط: O(log n)).
🔺 مرتبسازی هرمی (Heap Sort)
- غیربازگشتی است و از پشته استفاده نمیکند.
- پیچیدگی فضایی: O(1) (فقط فضای ثابت نیاز دارد).
به طور خلاصه، الگوریتمهای بازگشتی مثل Merge Sort و Quick Sort به پشته نیاز دارند، در حالی که سایر الگوریتمهای غیربازگشتی بدون استفاده از پشته و در فضای ثابت اجرا میشوند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Media is too big
VIEW IN TELEGRAM
Shortest Path Algorithms Explained (Dijkstra's & Bellman-Ford)
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
کتیبههای میخی فارسی باستان ارزش تاریخی فراوانی دارند، و اکنون هوش مصنوعی میتواند در ترجمه و حفظ آنها نقشی مهم ایفا کند. با توسعه مدل جدیدی به نام "easyocr old persian" و استفاده از OCR و NLP، امکان ترجمه این متون باستانی به زبانهای مدرن فراهم شده است. همچنین این پروژه به گسترش ابزارهای هوشمند برای زبانهای باستانی دیگر و بازسازی متون شکسته اشاره دارد، تا از این طریق به حفظ و فهم بهتر فرهنگهای باستانی کمک کند.
Paper : https://www.researchgate.net/publication/382528886_Translating_Old_Persian_cuneiform_by_artificial_intelligence_AI
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Paper : https://www.researchgate.net/publication/382528886_Translating_Old_Persian_cuneiform_by_artificial_intelligence_AI
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
انگیزه یادگیری تئوری در دادهکاوی و یادگیری ماشین
مطالعه مبانی نظری برای ورود به حوزه دادهکاوی یا یادگیری ماشین، با پیچیدگیهای فراوانی همراه است. این مسیر به دلیل پوشش مباحث متنوع ریاضی و انبوهی از منابع آنلاین، ممکن است برای بسیاری چالشبرانگیز باشد.
هدف این راهنما
در این راهنما قصد دارم منابعی را معرفی کنم که میتوانند پایههای ریاضی لازم برای کارهای عملی یا پژوهشی در دادهکاوی را تقویت کنند. این پیشنهادها حاصل تجربههای شخصی و همچنین جدیدترین منابعی است که جامعه علمی معرفی کرده است.
رویکرد مناسب برای مبتدیان
اگر تازه به یادگیری ماشین علاقهمند شدهاید و قصد دارید در این زمینه شغلی پیدا کنید، پیشنهاد نمیکنم که ابتدا سراغ تمام مباحث تئوری بروید. چرا که اگر پیش از تجربه کار عملی، به مطالعه نظریات (که گاه کسلکننده هستند) بپردازید، احتمالاً دلسرد خواهید شد. رویکرد "از پایین به بالا" اغلب اثر معکوس دارد.
پیشنهاد من: رویکرد "از بالا به پایین"
ابتدا مهارتهای برنامهنویسی را یاد بگیرید، با ابزارهای PyData مثل Pandas، sklearn و Keras کار کنید، پروژههای واقعی انجام دهید و از مستندات کتابخانهها و آموزشهای آنلاین بهره ببرید. با این روش، وقتی در کار عملی به مشکلات برمیخورید، نیاز به مبانی تئوری را بهتر درک میکنید؛ در این مرحله، مطالعه ریاضیات برایتان مفهومیتر و جذابتر خواهد بود.
معرفی منابع
در ادامه، منابع مفید را به سه دسته تقسیم کردهام: جبر خطی، حساب دیفرانسیل و انتگرال، و آمار و احتمال. هر بخش شامل ترکیبی از آموزشهای ویدیویی، کتابها، وبلاگها و دورههای آنلاین است.
- جبر خطی
جبر خطی از مفاهیم کلیدی در یادگیری ماشین است که به درک بهتر نحوه عملکرد الگوریتمها کمک میکند. این موضوع شامل عملیات وکتور، ماتریس و تنسور میشود و پیچیدگی خاصی ندارد.
1-Khan Academy Linear Algebra series (beginner-friendly).
2-Coding the Matrix course (and book).
3-3Blue1Brown Linear Algebra series.
4-fast.ai Linear Algebra for coders course, highly related to modern ML workflow.
5-The first course in Coursera Mathematics for Machine Learning specialization.
6-“Introduction to Applied Linear Algebra — Vectors, Matrices, and Least Squares” book.
7-MIT Linear Algebra course, highly comprehensive.
7-Stanford CS229 Linear Algebra review.
- حساب دیفرانسیل و انتگرال
در یادگیری ماشین، حساب دیفرانسیل و انتگرال برای تعریف و ایجاد توابعی استفاده میشود که هدف و کارایی الگوریتمها را مشخص میکنند؛ این توابع به عنوان توابع هزینه یا هدف شناخته میشوند.
1-Khan Academy Calculus series (beginner-friendly).
2-3Blue1Brown Calculus series.
3-The second course in Coursera Mathematics for Machine Learning specialization.
4-The Matrix Calculus You Need For Deep Learning paper.
5-MIT Single Variable Calculus.
6-MIT Multivariable Calculus.
7-Stanford CS224n Differential Calculus review.
- آمار و احتمال
آمار و احتمال در دادهکاوی و یادگیری ماشین به تحلیل دادهها، کشف الگوهای پنهان و استخراج بینشهای ارزشمند کمک میکنند.
1-Khan Academy Statistics and probability series (beginner-friendly).
2-Seeing Theory: A visual introduction to probability and statistics.
3-Intro to Descriptive Statistics from Udacity.
4-Intro to Inferential Statistics from Udacity.
5-Statistics with R Specialization from Coursera.
6-Stanford CS229 Probability Theory review.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
مطالعه مبانی نظری برای ورود به حوزه دادهکاوی یا یادگیری ماشین، با پیچیدگیهای فراوانی همراه است. این مسیر به دلیل پوشش مباحث متنوع ریاضی و انبوهی از منابع آنلاین، ممکن است برای بسیاری چالشبرانگیز باشد.
هدف این راهنما
در این راهنما قصد دارم منابعی را معرفی کنم که میتوانند پایههای ریاضی لازم برای کارهای عملی یا پژوهشی در دادهکاوی را تقویت کنند. این پیشنهادها حاصل تجربههای شخصی و همچنین جدیدترین منابعی است که جامعه علمی معرفی کرده است.
رویکرد مناسب برای مبتدیان
اگر تازه به یادگیری ماشین علاقهمند شدهاید و قصد دارید در این زمینه شغلی پیدا کنید، پیشنهاد نمیکنم که ابتدا سراغ تمام مباحث تئوری بروید. چرا که اگر پیش از تجربه کار عملی، به مطالعه نظریات (که گاه کسلکننده هستند) بپردازید، احتمالاً دلسرد خواهید شد. رویکرد "از پایین به بالا" اغلب اثر معکوس دارد.
پیشنهاد من: رویکرد "از بالا به پایین"
ابتدا مهارتهای برنامهنویسی را یاد بگیرید، با ابزارهای PyData مثل Pandas، sklearn و Keras کار کنید، پروژههای واقعی انجام دهید و از مستندات کتابخانهها و آموزشهای آنلاین بهره ببرید. با این روش، وقتی در کار عملی به مشکلات برمیخورید، نیاز به مبانی تئوری را بهتر درک میکنید؛ در این مرحله، مطالعه ریاضیات برایتان مفهومیتر و جذابتر خواهد بود.
معرفی منابع
در ادامه، منابع مفید را به سه دسته تقسیم کردهام: جبر خطی، حساب دیفرانسیل و انتگرال، و آمار و احتمال. هر بخش شامل ترکیبی از آموزشهای ویدیویی، کتابها، وبلاگها و دورههای آنلاین است.
- جبر خطی
جبر خطی از مفاهیم کلیدی در یادگیری ماشین است که به درک بهتر نحوه عملکرد الگوریتمها کمک میکند. این موضوع شامل عملیات وکتور، ماتریس و تنسور میشود و پیچیدگی خاصی ندارد.
1-Khan Academy Linear Algebra series (beginner-friendly).
2-Coding the Matrix course (and book).
3-3Blue1Brown Linear Algebra series.
4-fast.ai Linear Algebra for coders course, highly related to modern ML workflow.
5-The first course in Coursera Mathematics for Machine Learning specialization.
6-“Introduction to Applied Linear Algebra — Vectors, Matrices, and Least Squares” book.
7-MIT Linear Algebra course, highly comprehensive.
7-Stanford CS229 Linear Algebra review.
- حساب دیفرانسیل و انتگرال
در یادگیری ماشین، حساب دیفرانسیل و انتگرال برای تعریف و ایجاد توابعی استفاده میشود که هدف و کارایی الگوریتمها را مشخص میکنند؛ این توابع به عنوان توابع هزینه یا هدف شناخته میشوند.
1-Khan Academy Calculus series (beginner-friendly).
2-3Blue1Brown Calculus series.
3-The second course in Coursera Mathematics for Machine Learning specialization.
4-The Matrix Calculus You Need For Deep Learning paper.
5-MIT Single Variable Calculus.
6-MIT Multivariable Calculus.
7-Stanford CS224n Differential Calculus review.
- آمار و احتمال
آمار و احتمال در دادهکاوی و یادگیری ماشین به تحلیل دادهها، کشف الگوهای پنهان و استخراج بینشهای ارزشمند کمک میکنند.
1-Khan Academy Statistics and probability series (beginner-friendly).
2-Seeing Theory: A visual introduction to probability and statistics.
3-Intro to Descriptive Statistics from Udacity.
4-Intro to Inferential Statistics from Udacity.
5-Statistics with R Specialization from Coursera.
6-Stanford CS229 Probability Theory review.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
YouTube
Essence of linear algebra
A free course offering the core concept of linear algebra with a visuals-first approach.
CNN.pdf
7.3 MB
📄 اگر به موضوع شبکههای عصبی پیچشی (CNN) برای طبقهبندی دادهها علاقهمند هستید، این فایل PDF میتواند منبع بسیار مفیدی برای شما باشد. این فایل به طور خلاصه و کاربردی، نحوه عملکرد CNNها و استفاده از آنها در مسائل طبقهبندی دادهها را توضیح میدهد. با مطالعه این فایل، میتوانید دید بهتری نسبت به ساختار و کاربرد CNNها پیدا کنید و آنها را در پروژههای خود به کار بگیرید. 🌐📊
حتماً مطالعهاش کنید و اگر سوالی داشتید، در بخش نظرات بپرسید! 🧑💻📚
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
حتماً مطالعهاش کنید و اگر سوالی داشتید، در بخش نظرات بپرسید! 🧑💻📚
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
تصویر 👆🏻👆🏻به شکلی ساده و گویا رابطهی بین کلاسهای پیچیدگی در علوم کامپیوتر را نشان میدهد و فرض میکند که P!=NP است. در ادامه توضیح مختصری برای هر بخش ارائه میشود:
🔹 کلاس P: این کلاس شامل مسائلی است که میتوان آنها را با الگوریتمهای قطعی و در زمان چندجملهای (polynomial time) حل کرد. به عبارت دیگر، این مسائل برای کامپیوترها قابل حل هستند و زمان زیادی نیاز ندارند. این دسته از مسائل سادهتر هستند و الگوریتمهای کارآمدی برای آنها وجود دارد.
💡 مثال: مسئلهی "کوتاهترین مسیر" که در آن میخواهیم کوتاهترین مسیر بین دو نقطه را پیدا کنیم.
🔹 کلاس NP: این کلاس شامل مسائلی است که اگر جوابشان به ما داده شود، میتوانیم در زمانی چندجملهای (با استفاده از یک الگوریتم) آن را تأیید کنیم، اما پیدا کردن جواب خود مسئله ممکن است زمان زیادی ببرد. این بدان معناست که اگر جوابی داشته باشیم، تأیید آن آسان است؛ ولی یافتن جواب قطعی ممکن است زمانبر باشد.
💡 نکته: NP شامل P هم میشود؛ چراکه اگر بتوانیم مسئلهای را سریع حل کنیم، قطعاً میتوانیم جواب آن را هم سریع تأیید کنیم.
🔸 کلاس NP-کامل (NP-Complete): این دسته از مسائل، پیچیدهترین مسائل در NP هستند. این مسائل هم در NP هستند و هم ویژگی خاصی دارند که اگر بتوانیم یک مسئله NP-کامل را در زمانی چندجملهای حل کنیم، میتوانیم تمام مسائل NP را نیز در زمانی چندجملهای حل کنیم. این مسائل برای پژوهشگران و متخصصان علوم کامپیوتر چالشبرانگیز هستند.
💡 مثال: مسئلهی "پوشش رأس" (Vertex Cover) که یک مسئلهی کلاسیک NP-کامل است و پیدا کردن راهحل آن بهویژه برای ورودیهای بزرگ دشوار است.
🔸 کلاس NP-سخت (NP-Hard): این کلاس شامل مسائلی است که سختی آنها حداقل به اندازهی مسائل NP-کامل است، اما لزوماً در NP نیستند. به این معنی که حتی ممکن است نتوانیم به راحتی جواب آنها را تأیید کنیم. این دسته شامل مسائلی مانند "مشکل توقف تورینگ" (Turing Halting Problem) است که در آن حتی تأیید کردن جواب نیز دشوار و در برخی موارد غیرممکن است.
💡 مثال: "مشکل توقف تورینگ" که یکی از پیچیدهترین مسائل محاسباتی است.
🔍 جمعبندی: این نمودار به خوبی رابطه و تفاوت بین این کلاسها را نشان میدهد و به ما کمک میکند تا بدانیم هر کدام از این دستهها شامل چه نوع مسائلی میشوند و چرا بررسی هرکدام از آنها اهمیت دارد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🔹 کلاس P: این کلاس شامل مسائلی است که میتوان آنها را با الگوریتمهای قطعی و در زمان چندجملهای (polynomial time) حل کرد. به عبارت دیگر، این مسائل برای کامپیوترها قابل حل هستند و زمان زیادی نیاز ندارند. این دسته از مسائل سادهتر هستند و الگوریتمهای کارآمدی برای آنها وجود دارد.
💡 مثال: مسئلهی "کوتاهترین مسیر" که در آن میخواهیم کوتاهترین مسیر بین دو نقطه را پیدا کنیم.
🔹 کلاس NP: این کلاس شامل مسائلی است که اگر جوابشان به ما داده شود، میتوانیم در زمانی چندجملهای (با استفاده از یک الگوریتم) آن را تأیید کنیم، اما پیدا کردن جواب خود مسئله ممکن است زمان زیادی ببرد. این بدان معناست که اگر جوابی داشته باشیم، تأیید آن آسان است؛ ولی یافتن جواب قطعی ممکن است زمانبر باشد.
💡 نکته: NP شامل P هم میشود؛ چراکه اگر بتوانیم مسئلهای را سریع حل کنیم، قطعاً میتوانیم جواب آن را هم سریع تأیید کنیم.
🔸 کلاس NP-کامل (NP-Complete): این دسته از مسائل، پیچیدهترین مسائل در NP هستند. این مسائل هم در NP هستند و هم ویژگی خاصی دارند که اگر بتوانیم یک مسئله NP-کامل را در زمانی چندجملهای حل کنیم، میتوانیم تمام مسائل NP را نیز در زمانی چندجملهای حل کنیم. این مسائل برای پژوهشگران و متخصصان علوم کامپیوتر چالشبرانگیز هستند.
💡 مثال: مسئلهی "پوشش رأس" (Vertex Cover) که یک مسئلهی کلاسیک NP-کامل است و پیدا کردن راهحل آن بهویژه برای ورودیهای بزرگ دشوار است.
🔸 کلاس NP-سخت (NP-Hard): این کلاس شامل مسائلی است که سختی آنها حداقل به اندازهی مسائل NP-کامل است، اما لزوماً در NP نیستند. به این معنی که حتی ممکن است نتوانیم به راحتی جواب آنها را تأیید کنیم. این دسته شامل مسائلی مانند "مشکل توقف تورینگ" (Turing Halting Problem) است که در آن حتی تأیید کردن جواب نیز دشوار و در برخی موارد غیرممکن است.
💡 مثال: "مشکل توقف تورینگ" که یکی از پیچیدهترین مسائل محاسباتی است.
🔍 جمعبندی: این نمودار به خوبی رابطه و تفاوت بین این کلاسها را نشان میدهد و به ما کمک میکند تا بدانیم هر کدام از این دستهها شامل چه نوع مسائلی میشوند و چرا بررسی هرکدام از آنها اهمیت دارد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Open Contextual RAG 🌐
نحوهی عملکرد
بازیابی اطلاعات:
اطلاعات مرتبط از منابع مختلف مانند وب، دیتابیسها و اسناد بزرگ بازیابی میشود.
این مرحله معمولاً با استفاده از موتورهای جستجو یا تکنیکهای خاصی انجام میشود.
ادغام با مدل تولیدی:
متنهای بازیابی شده به مدل زبانی وارد میشوند.
مدل با تحلیل این متنها، پاسخ بهینهای تولید میکند.
تولید پاسخ:
خروجی نهایی شامل یک متن دقیق و مرتبط با درخواست کاربر است.. ادغام با مدل تولیدی: متن بازیابی شده به مدل زبانی داده میشود تا پاسخ بهینهای تولید کند.
3. تولید پاسخ: خروجی نهایی به سؤال کاربر پاسخ دقیقتری میدهد.
کاربردها :
- پاسخدهی بهروز در چتباتها
- دسترسپذیری اطلاعات تخصصی در جستجوهای علمی و پزشکی
- پشتیبانی از زبانهای مختلف
برای اطلاعات بیشتر در مورد کارکرد بازیابی اطلاعات، لطفاً به لینک زیر مراجعه کنید:
https://github.com/MohammadHossini/IR-Project
Contextual RAG:https://github.com/togethercomputer/together-cookbook/blob/main/Open_Contextual_RAG.ipynb
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
نحوهی عملکرد
بازیابی اطلاعات:
اطلاعات مرتبط از منابع مختلف مانند وب، دیتابیسها و اسناد بزرگ بازیابی میشود.
این مرحله معمولاً با استفاده از موتورهای جستجو یا تکنیکهای خاصی انجام میشود.
ادغام با مدل تولیدی:
متنهای بازیابی شده به مدل زبانی وارد میشوند.
مدل با تحلیل این متنها، پاسخ بهینهای تولید میکند.
تولید پاسخ:
خروجی نهایی شامل یک متن دقیق و مرتبط با درخواست کاربر است.. ادغام با مدل تولیدی: متن بازیابی شده به مدل زبانی داده میشود تا پاسخ بهینهای تولید کند.
3. تولید پاسخ: خروجی نهایی به سؤال کاربر پاسخ دقیقتری میدهد.
کاربردها :
- پاسخدهی بهروز در چتباتها
- دسترسپذیری اطلاعات تخصصی در جستجوهای علمی و پزشکی
- پشتیبانی از زبانهای مختلف
برای اطلاعات بیشتر در مورد کارکرد بازیابی اطلاعات، لطفاً به لینک زیر مراجعه کنید:
https://github.com/MohammadHossini/IR-Project
Contextual RAG:https://github.com/togethercomputer/together-cookbook/blob/main/Open_Contextual_RAG.ipynb
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
در اینجا نکات مهم و کاربردی درباره کد هافمن همراه با استیکرهای مناسب ارائه شده است:
💡 ۱. فشردهسازی بهینه بدون اتلاف
کد هافمن یک روش فشردهسازی بدون اتلاف است، به این معنا که تمام اطلاعات اصلی حفظ میشود و در عین حال حجم دادهها کاهش مییابد. کاراکترهای پرتکرار، کدهای کوتاهتر میگیرند و کاراکترهای نادر، کدهای طولانیتر**؛ این باعث کاهش حجم کلی فایل میشود.
🌳 ۲. ساخت درخت هافمن
برای ساخت درخت هافمن، هر کاراکتر بر اساس **فراوانی آن به یک گره تبدیل میشود. سپس، دو گره با کمترین فراوانی انتخاب شده و با هم ترکیب میشوند. این فرایند ادامه دارد تا به یک درخت دودویی نهایی برسیم. درخت هافمن نقش مهمی در تولید کدها دارد، چرا که بر اساس مسیر درخت**، کد هر کاراکتر تعیین میشود.
🔑 ۳. کدهای پیشوندی و بدون ابهام
یکی از ویژگیهای مهم کد هافمن **پیشوندی بودن آن است؛ یعنی هیچ کدی پیشوند کد دیگری نیست. این ویژگی باعث میشود که دیکودینگ ساده و بدون ابهام باشد. برای مثال، اگر کد یک کاراکتر "۱۰۱" باشد، هیچ کد دیگری نمیتواند با "۱۰۱" شروع شود و همین امر باعث دقت در دیکود کردن میشود.
🚀 ۴. پیچیدگی و کارایی زمانی
پیچیدگی ساخت درخت هافمن برابر با ( O(n log n) ) است که n تعداد کاراکترهای منحصربهفرد است. این بهینهسازی در ساخت درخت باعث میشود که کد هافمن در مقایسه با روشهای دیگر فشردهسازی سریعتر و کارآمدتر باشد. پس از ساخت درخت، دیکودینگ و کدگذاری هر کاراکتر به صورت خطی انجام میشود.
🛠 ۵. کاربردهای گسترده
کد هافمن در فشردهسازی فایلها (مانند ZIP و GZIP)، تصاویر (مانند JPEG) و حتی در انتقال دادهها در شبکهها برای کاهش مصرف پهنای باند کاربرد دارد. در کل، این روش به دلیل سادگی و اثربخشی خود در بسیاری از زمینهها همچنان محبوب و کاربردی است.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
💡 ۱. فشردهسازی بهینه بدون اتلاف
کد هافمن یک روش فشردهسازی بدون اتلاف است، به این معنا که تمام اطلاعات اصلی حفظ میشود و در عین حال حجم دادهها کاهش مییابد. کاراکترهای پرتکرار، کدهای کوتاهتر میگیرند و کاراکترهای نادر، کدهای طولانیتر**؛ این باعث کاهش حجم کلی فایل میشود.
🌳 ۲. ساخت درخت هافمن
برای ساخت درخت هافمن، هر کاراکتر بر اساس **فراوانی آن به یک گره تبدیل میشود. سپس، دو گره با کمترین فراوانی انتخاب شده و با هم ترکیب میشوند. این فرایند ادامه دارد تا به یک درخت دودویی نهایی برسیم. درخت هافمن نقش مهمی در تولید کدها دارد، چرا که بر اساس مسیر درخت**، کد هر کاراکتر تعیین میشود.
🔑 ۳. کدهای پیشوندی و بدون ابهام
یکی از ویژگیهای مهم کد هافمن **پیشوندی بودن آن است؛ یعنی هیچ کدی پیشوند کد دیگری نیست. این ویژگی باعث میشود که دیکودینگ ساده و بدون ابهام باشد. برای مثال، اگر کد یک کاراکتر "۱۰۱" باشد، هیچ کد دیگری نمیتواند با "۱۰۱" شروع شود و همین امر باعث دقت در دیکود کردن میشود.
🚀 ۴. پیچیدگی و کارایی زمانی
پیچیدگی ساخت درخت هافمن برابر با ( O(n log n) ) است که n تعداد کاراکترهای منحصربهفرد است. این بهینهسازی در ساخت درخت باعث میشود که کد هافمن در مقایسه با روشهای دیگر فشردهسازی سریعتر و کارآمدتر باشد. پس از ساخت درخت، دیکودینگ و کدگذاری هر کاراکتر به صورت خطی انجام میشود.
🛠 ۵. کاربردهای گسترده
کد هافمن در فشردهسازی فایلها (مانند ZIP و GZIP)، تصاویر (مانند JPEG) و حتی در انتقال دادهها در شبکهها برای کاهش مصرف پهنای باند کاربرد دارد. در کل، این روش به دلیل سادگی و اثربخشی خود در بسیاری از زمینهها همچنان محبوب و کاربردی است.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
روی مدلهای زبان تصویری (Vision Language Models یا VLMs) حساب کنید.
با انتشار مدلهای Llama 3.2 و ColQwen2، مدلهای چندوجهی (multimodal) توجه زیادی به خود جلب کردهاند.
در واقع VLMها مدلهای چندوجهی هستند که میتوانند با ورودیهای تصویری و متنی کار کنند:
ورودی: تصویر و متن
خروجی: متن
این مدلها کاربردهای متنوعی دارند، از جمله پاسخ به پرسشهای بصری یا درک اسناد (همانطور که در ColQwen2 دیده میشود).
چگونه این مدلها کار میکنند؟
چالش اصلی در VLMها، یکپارچهسازی نمایشیهای تصویر و متن است.
برای این منظور، معماری معمول VLM شامل اجزای زیر است:
- انکودر تصویر (مانند CLIP، SigLIP)
- پروژکتور تعبیهای (embedding projector) برای هماهنگی نمایشیهای تصویر و متن
- دیکودر متن (مانند Vicuna، Gemma)
More : https://huggingface.co/blog/vlms
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
با انتشار مدلهای Llama 3.2 و ColQwen2، مدلهای چندوجهی (multimodal) توجه زیادی به خود جلب کردهاند.
در واقع VLMها مدلهای چندوجهی هستند که میتوانند با ورودیهای تصویری و متنی کار کنند:
ورودی: تصویر و متن
خروجی: متن
این مدلها کاربردهای متنوعی دارند، از جمله پاسخ به پرسشهای بصری یا درک اسناد (همانطور که در ColQwen2 دیده میشود).
چگونه این مدلها کار میکنند؟
چالش اصلی در VLMها، یکپارچهسازی نمایشیهای تصویر و متن است.
برای این منظور، معماری معمول VLM شامل اجزای زیر است:
- انکودر تصویر (مانند CLIP، SigLIP)
- پروژکتور تعبیهای (embedding projector) برای هماهنگی نمایشیهای تصویر و متن
- دیکودر متن (مانند Vicuna، Gemma)
More : https://huggingface.co/blog/vlms
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🔹 افزونه ChatGPT برای کروم یک ابزار قدرتمند است که به شما امکان میدهد مستقیماً از قابلیتهای چت جیبیتی در مرورگر خود بهره ببرید. این افزونه به شما کمک میکند بدون نیاز به مراجعه به وبسایت ChatGPT، بهسادگی در هر صفحه وب، سؤال بپرسید و پاسخهای دقیق دریافت کنید.
🔸 مزایای اصلی این افزونه شامل دسترسی سریع به پردازش زبان طبیعی، جستجوی سریع اطلاعات، خلاصهنویسی متون، و حتی کمک به نوشتن ایمیلهاست. 📧
🔹 کاربردهای افزونه برای محققین، دانشجویان و همهی کسانی که به پاسخهای فوری نیاز دارند، فوقالعاده است. همچنین، با امکان ادغام با دیگر ابزارهای کروم، تجربهای ساده و یکپارچه برای شما فراهم میکند. 📑✨
برای نصب، کافی است به لینک زیر مراجعه کنید :
https://chromewebstore.google.com/detail/chatgpt-search/ejcfepkfckglbgocfkanmcdngdijcgld
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🔸 مزایای اصلی این افزونه شامل دسترسی سریع به پردازش زبان طبیعی، جستجوی سریع اطلاعات، خلاصهنویسی متون، و حتی کمک به نوشتن ایمیلهاست. 📧
🔹 کاربردهای افزونه برای محققین، دانشجویان و همهی کسانی که به پاسخهای فوری نیاز دارند، فوقالعاده است. همچنین، با امکان ادغام با دیگر ابزارهای کروم، تجربهای ساده و یکپارچه برای شما فراهم میکند. 📑✨
برای نصب، کافی است به لینک زیر مراجعه کنید :
https://chromewebstore.google.com/detail/chatgpt-search/ejcfepkfckglbgocfkanmcdngdijcgld
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
هفته رایگان دیتاکمپ 2024 از 14 تا 20 آبان در دسترس هست.
سایت DataCamp هر سال یک هفته دسترسی به کل سایتش از جمله +500 دوره آموزشیشو رایگان میکنه و شما بدون نیاز به حتی داشتن کارت اعتباری برای ثبتنام اولیه میتونید توی سایت ثبتنام کنید.
ثبتنام از 4 نوامبر (14 آبان) در دسترس قرار میگیره
لینک ثبتنام:
https://www.datacamp.com/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
سایت DataCamp هر سال یک هفته دسترسی به کل سایتش از جمله +500 دوره آموزشیشو رایگان میکنه و شما بدون نیاز به حتی داشتن کارت اعتباری برای ثبتنام اولیه میتونید توی سایت ثبتنام کنید.
ثبتنام از 4 نوامبر (14 آبان) در دسترس قرار میگیره
لینک ثبتنام:
https://www.datacamp.com/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
LLM.pdf
8.4 MB
ساخت مدلهای زبان بزرگ (کلاس درس CS229 دانشگاه استنفورد)
این کلاس به بررسی مختصر فرایند ساخت مدلهای زبان بزرگ مشابه ChatGPT میپردازد.
بهطور مشخص، این کلاس شامل موارد زیر است:
- Pretraining
- Post-training
در هر قسمت، به موارد زیر پرداخته میشود:
- روشهای رایج در جمعآوری دادهها،
- الگوریتمها و
- روشهای ارزیابی
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
این کلاس به بررسی مختصر فرایند ساخت مدلهای زبان بزرگ مشابه ChatGPT میپردازد.
بهطور مشخص، این کلاس شامل موارد زیر است:
- Pretraining
- Post-training
در هر قسمت، به موارد زیر پرداخته میشود:
- روشهای رایج در جمعآوری دادهها،
- الگوریتمها و
- روشهای ارزیابی
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer