هوش مصنوعی وقوع جرم را قبل از رخ دادن پیشبینی میکند! 🤯
🔹 در واقع Dejaview رفتار انسانی، دادههای مکانی و سوابق وقایع گذشته را بررسی میکند و با نرخ دقت ۸۲.۸٪ وقوع جرم را پیشبینی میکند.
🔹 این سیستم قادر است تکرار مجرمان را شناسایی کرده تا نیت آنها را ارزیابی کرده و به جلوگیری از وقوع جرایم قبل از وقوع آنها کمک کند. این سیستم در حال حاضر در فرودگاهها، کارخانهها و مناطق عمومی در کره جنوبی استفاده میشود.
🔹 توسعهدهندگان قصد دارند آن را تا سال ۲۰۲۵ به عموم مردم عرضه کنند.
This AI claims to predict crimes before they happen based on real-time CCTV analysis
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🔹 در واقع Dejaview رفتار انسانی، دادههای مکانی و سوابق وقایع گذشته را بررسی میکند و با نرخ دقت ۸۲.۸٪ وقوع جرم را پیشبینی میکند.
🔹 این سیستم قادر است تکرار مجرمان را شناسایی کرده تا نیت آنها را ارزیابی کرده و به جلوگیری از وقوع جرایم قبل از وقوع آنها کمک کند. این سیستم در حال حاضر در فرودگاهها، کارخانهها و مناطق عمومی در کره جنوبی استفاده میشود.
🔹 توسعهدهندگان قصد دارند آن را تا سال ۲۰۲۵ به عموم مردم عرضه کنند.
This AI claims to predict crimes before they happen based on real-time CCTV analysis
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
جزوه کامل ساختمان داده.rar
19.3 MB
📚درس: ساختمان دادهها
👨🏫مدرس: الهه دری
🏛دانشگاه: آزاد اسلامی
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
👨🏫مدرس: الهه دری
🏛دانشگاه: آزاد اسلامی
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
با شروع ترم جدید، قصد دارم برای دوستانی که این ترم درسهای "طراحی الگوریتم" و "ساختمان داده" را دارند، یک آموزش کامل و جامع ارائه کنم. از تعاریف ابتدایی این دروس شروع میکنیم و هر هفته، مطابق با پیشروی اساتید محترم، فصلها را بررسی خواهیم کرد. این آموزش شامل توضیحات مفهومی و حل برخی از سوالات نیز خواهد بود. اگر در طول مسیر سوال یا مشکلی داشتید، میتوانید از طریق ادمین کانال سوالات خود را مطرح کنید؛ حتماً راهنماییهای لازم را دریافت خواهید کرد.
با تشکر از همکاری و همراهی شما 🙏
با تشکر از همکاری و همراهی شما 🙏
ساختمان دادهها (Data Structure) 🏗 یکی از پایههای اساسی در علم کامپیوتر است که به سازماندهی و ساختاردهی دادهها کمک میکند تا بتوان به سرعت و بهینه به آنها دسترسی پیدا کرد. این ساختارها شامل آرایهها 📊، لیستهای پیوندی 🔗، درختها 🌳، گرافها 🌐 و بسیاری از ساختارهای دیگر میشود که هر یک برای کاربردهای خاص خود مناسب هستند. بهطور مثال، برای جستجوی سریع در دادهها، میتوان از ساختارهایی مانند درخت جستجوی دودویی (Binary Search Tree) 🧐 استفاده کرد.
از سوی دیگر، طراحی الگوریتم (Algorithm Design) 💻 فرآیندی است که در آن الگوریتمهایی برای حل مسائل ایجاد میشوند. الگوریتمها دستورالعملهای گامبهگام هستند که به کامپیوتر میگویند چگونه یک مسئله را حل کند. یک الگوریتم بهینه باید بتواند با حداقل استفاده از منابع و زمان ⏱، به بهترین نتیجه برسد. برای مثال، الگوریتم مرتبسازی سریع (QuickSort) ⚡️ یکی از الگوریتمهای کارآمد برای مرتبسازی دادهها است.
👨💻 ساختمان دادهها و الگوریتمها در کنار هم مثل ابزارهای یک مهندس هستند که برای حل مسائل پیچیده و ساخت نرمافزارهای کارآمد به کار میروند. مهندس نرمافزار باید بداند که از کدام ساختمان داده برای کدام مسئله استفاده کند تا الگوریتمهای بهتری طراحی کند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
از سوی دیگر، طراحی الگوریتم (Algorithm Design) 💻 فرآیندی است که در آن الگوریتمهایی برای حل مسائل ایجاد میشوند. الگوریتمها دستورالعملهای گامبهگام هستند که به کامپیوتر میگویند چگونه یک مسئله را حل کند. یک الگوریتم بهینه باید بتواند با حداقل استفاده از منابع و زمان ⏱، به بهترین نتیجه برسد. برای مثال، الگوریتم مرتبسازی سریع (QuickSort) ⚡️ یکی از الگوریتمهای کارآمد برای مرتبسازی دادهها است.
👨💻 ساختمان دادهها و الگوریتمها در کنار هم مثل ابزارهای یک مهندس هستند که برای حل مسائل پیچیده و ساخت نرمافزارهای کارآمد به کار میروند. مهندس نرمافزار باید بداند که از کدام ساختمان داده برای کدام مسئله استفاده کند تا الگوریتمهای بهتری طراحی کند.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Please open Telegram to view this post
VIEW IN TELEGRAM
در ساختمان داده و تحلیل الگوریتمها، رشد توابع (Growth of Functions) به بررسی نحوه افزایش زمان اجرای یک الگوریتم یا مقدار حافظه مورد نیاز آن نسبت به اندازه ورودی (معمولاً (n)میپردازد 📊. این تحلیل برای پیشبینی کارایی الگوریتمها و انتخاب بهترین الگوریتم برای یک مسئله بسیار مهم است. در ادامه انواع توابع رشد و نحوه مقایسه آنها را توضیح میدهم:
1. توابع ثابت (Constant Function) – (O(1
- این نوع توابع نشان میدهند که زمان اجرای الگوریتم با تغییر اندازه ورودی تغییر نمیکند و همیشه ثابت است ⏱. به عنوان مثال:
- دسترسی مستقیم به یک عنصر در آرایه (مثل (array[i]) زمان ثابت دارد.
2. توابع لگاریتمی (Logarithmic Functions) – (O(log n
- در اینجا زمان اجرا با افزایش ورودی به صورت لگاریتمی افزایش مییابد 📈. یعنی رشد زمان اجرا بسیار کند است. به عنوان مثال، الگوریتمهایی که دادهها را به صورت مکرر به نصف تقسیم میکنند، مانند:
- جستجوی دودویی (Binary Search) 🔍: در هر مرحله اندازه فضای جستجو نصف میشود، بنابراین پیچیدگی زمانی آن O(log n) است.
3. توابع خطی (Linear Functions) – \O(n)
- در این حالت، زمان اجرا به طور مستقیم و با نسبت 1:1 با اندازه ورودی افزایش مییابد 📐. به عنوان مثال:
- پیمایش یا جستجو در یک لیست از اندازه(n) به زمان خطی (O(n نیاز دارد.
4. توابع خطی لگاریتمی (Linearithmic Functions) – (O(n log n
- این نوع تابعها سریعتر از توابع خطی رشد میکنند ولی از توابع درجه دوم (چندجملهای) کندتر هستند 🌀. الگوریتمهای کارآمد مرتبسازی مانند:
- مرتبسازی سریع (Quick Sort) و مرتبسازی ادغامی (Merge Sort) معمولاً پیچیدگی زمانی (O(n log n دارند.
5. توابع چندجملهای (Polynomial Functions)
- در این توابع، زمان اجرا به صورت درجه \(k\) از \(n\) افزایش مییابد 📊:
-پیچدگی O(n^2): مانند مرتبسازی حبابی (Bubble Sort) 🫧 و مرتبسازی انتخابی (Selection Sort) که زمان اجرای آنها درجه دوم است.
-پیچدگی O(n^3): در برخی از الگوریتمهای پیچیدهتر ممکن است مشاهده شود.
6. توابع نمایی (Exponential Functions) – (O(2^n
- در این حالت، زمان اجرا با نرخ بسیار سریعی افزایش مییابد 🚀، به گونهای که هر واحد افزایش در اندازه ورودی باعث دو برابر شدن زمان اجرا میشود. به عنوان مثال:
- الگوریتمهای بررسی تمامی حالات (Brute Force) برای حل مسائلی مانند مسئله کولهپشتی (Knapsack Problem) 🎒 یا مجموعههای مستقل (Independent Set Problem) معمولاً زمان نمایی دارند.
7. توابع فاکتوریل (Factorial Functions) –(O(n!
- این تابعها بسیار سریعتر از توابع نمایی رشد میکنند و معمولاً برای مسائل بسیار پیچیده استفاده میشوند 💥. به عنوان مثال:
- مسئله مرتبسازی تمامی جایگشتها (Permutations) زمان O(n!)) دارد، زیرا همه جایگشتهای ممکن بررسی میشوند.
8. مقایسه رشد توابع
برای فهم بهتر رشد توابع، میتوان آنها را از نظر نرخ رشد مقایسه کرد:
O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(n^3) < O(2^n) < O(n!)
در عمل، وقتی (n) (اندازه ورودی) بزرگ میشود، توابعی مانند O(2^n) و O(n!) رشد بسیار سریعی دارند و اغلب غیرعملی هستند 🚫. از سوی دیگر، توابعی مانند O(log n)و O(n)کارایی بسیار بالایی دارند ✅.
9. معنی عملی رشد توابع
- الگوریتمهایی با پیچیدگی زمانی پایینتر (مانند O(n)یا (O(log n برای مسائل با ورودیهای بزرگ بسیار مناسبتر هستند 🏃♂️.
- الگوریتمهای با پیچیدگی بالاتر (مانند (O(n^2 یا O(2^n)معمولاً برای مسائل کوچک یا در شرایط خاص به کار میروند 🛑.
در کل، فهم رشد توابع به ما کمک میکند تا الگوریتمهای مختلف را از نظر کارایی مقایسه کنیم و مناسبترین گزینه را برای حل مسائل مختلف انتخاب کنیم 🎯.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
1. توابع ثابت (Constant Function) – (O(1
- این نوع توابع نشان میدهند که زمان اجرای الگوریتم با تغییر اندازه ورودی تغییر نمیکند و همیشه ثابت است ⏱. به عنوان مثال:
- دسترسی مستقیم به یک عنصر در آرایه (مثل (array[i]) زمان ثابت دارد.
2. توابع لگاریتمی (Logarithmic Functions) – (O(log n
- در اینجا زمان اجرا با افزایش ورودی به صورت لگاریتمی افزایش مییابد 📈. یعنی رشد زمان اجرا بسیار کند است. به عنوان مثال، الگوریتمهایی که دادهها را به صورت مکرر به نصف تقسیم میکنند، مانند:
- جستجوی دودویی (Binary Search) 🔍: در هر مرحله اندازه فضای جستجو نصف میشود، بنابراین پیچیدگی زمانی آن O(log n) است.
3. توابع خطی (Linear Functions) – \O(n)
- در این حالت، زمان اجرا به طور مستقیم و با نسبت 1:1 با اندازه ورودی افزایش مییابد 📐. به عنوان مثال:
- پیمایش یا جستجو در یک لیست از اندازه(n) به زمان خطی (O(n نیاز دارد.
4. توابع خطی لگاریتمی (Linearithmic Functions) – (O(n log n
- این نوع تابعها سریعتر از توابع خطی رشد میکنند ولی از توابع درجه دوم (چندجملهای) کندتر هستند 🌀. الگوریتمهای کارآمد مرتبسازی مانند:
- مرتبسازی سریع (Quick Sort) و مرتبسازی ادغامی (Merge Sort) معمولاً پیچیدگی زمانی (O(n log n دارند.
5. توابع چندجملهای (Polynomial Functions)
- در این توابع، زمان اجرا به صورت درجه \(k\) از \(n\) افزایش مییابد 📊:
-پیچدگی O(n^2): مانند مرتبسازی حبابی (Bubble Sort) 🫧 و مرتبسازی انتخابی (Selection Sort) که زمان اجرای آنها درجه دوم است.
-پیچدگی O(n^3): در برخی از الگوریتمهای پیچیدهتر ممکن است مشاهده شود.
6. توابع نمایی (Exponential Functions) – (O(2^n
- در این حالت، زمان اجرا با نرخ بسیار سریعی افزایش مییابد 🚀، به گونهای که هر واحد افزایش در اندازه ورودی باعث دو برابر شدن زمان اجرا میشود. به عنوان مثال:
- الگوریتمهای بررسی تمامی حالات (Brute Force) برای حل مسائلی مانند مسئله کولهپشتی (Knapsack Problem) 🎒 یا مجموعههای مستقل (Independent Set Problem) معمولاً زمان نمایی دارند.
7. توابع فاکتوریل (Factorial Functions) –(O(n!
- این تابعها بسیار سریعتر از توابع نمایی رشد میکنند و معمولاً برای مسائل بسیار پیچیده استفاده میشوند 💥. به عنوان مثال:
- مسئله مرتبسازی تمامی جایگشتها (Permutations) زمان O(n!)) دارد، زیرا همه جایگشتهای ممکن بررسی میشوند.
8. مقایسه رشد توابع
برای فهم بهتر رشد توابع، میتوان آنها را از نظر نرخ رشد مقایسه کرد:
O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(n^3) < O(2^n) < O(n!)
در عمل، وقتی (n) (اندازه ورودی) بزرگ میشود، توابعی مانند O(2^n) و O(n!) رشد بسیار سریعی دارند و اغلب غیرعملی هستند 🚫. از سوی دیگر، توابعی مانند O(log n)و O(n)کارایی بسیار بالایی دارند ✅.
9. معنی عملی رشد توابع
- الگوریتمهایی با پیچیدگی زمانی پایینتر (مانند O(n)یا (O(log n برای مسائل با ورودیهای بزرگ بسیار مناسبتر هستند 🏃♂️.
- الگوریتمهای با پیچیدگی بالاتر (مانند (O(n^2 یا O(2^n)معمولاً برای مسائل کوچک یا در شرایط خاص به کار میروند 🛑.
در کل، فهم رشد توابع به ما کمک میکند تا الگوریتمهای مختلف را از نظر کارایی مقایسه کنیم و مناسبترین گزینه را برای حل مسائل مختلف انتخاب کنیم 🎯.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
خانوم Khuyen Tran در صفحه توییترشون یه لایبرری جالب معرفی کردن که از طریق اون می تونید عملیات Pandas رو به راحتی و تنها با یک خط به صورت پارارل در همه پردازنده های موجود در سیستم اجرا کنید.
کتابخانه پاندارارل در گیت هاب
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
کتابخانه پاندارارل در گیت هاب
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
Algorithms analysis_complexity.pdf
184.6 KB
تحلیل و محاسبه پیچیدگی زمانی چند الگوریتم معروف با استفاده از روشهای مختلف
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🚀 FlowTurbo:
به سوی تولید تصویر بلادرنگ مبتنی بر جریان با استفاده از پالایشگر سرعت (NeurIPS 2024)
این عنوان به یک روش جدید برای تولید تصاویر در زمان واقعی اشاره دارد که بر اساس جریانهای تصویر عمل میکند و از یک پالایشگر سرعت برای بهبود کیفیت استفاده میکند. در کنفرانس NeurIPS 2024 معرفی شده است.
Github: https://github.com/shiml20/flowturbo
📕 Paper: https://arxiv.org/abs/2409.18128v1
🤗 Dataset: https://paperswithcode.com/dataset/imagenet
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
به سوی تولید تصویر بلادرنگ مبتنی بر جریان با استفاده از پالایشگر سرعت (NeurIPS 2024)
این عنوان به یک روش جدید برای تولید تصاویر در زمان واقعی اشاره دارد که بر اساس جریانهای تصویر عمل میکند و از یک پالایشگر سرعت برای بهبود کیفیت استفاده میکند. در کنفرانس NeurIPS 2024 معرفی شده است.
git clone https://github.com/shiml20/FlowTurbo.git
cd FlowTurbo
Github: https://github.com/shiml20/flowturbo
📕 Paper: https://arxiv.org/abs/2409.18128v1
🤗 Dataset: https://paperswithcode.com/dataset/imagenet
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
آرایهها 📊 یک ساختار دادهای هستند که دادهها را به صورت متوالی در حافظه ذخیره میکنند.
ویژگیها:
- 📏 اندازه ثابت: بعد از تعریف، تغییر نمیکند.
- 🚀 دسترسی سریع: با استفاده از اندیس، دسترسی به هر عنصر با زمان ثابت (O(1)) انجام میشود.
- 🧮 همگن بودن: همه عناصر از یک نوع داده هستند.
انواع:
1. آرایه یکبعدی: لیستی ساده از دادهها 📃
2. آرایه دوبعدی: شبیه جدول یا ماتریس 🧮
مزایا:
- 💡 کاربرد ساده و مناسب برای ذخیرهسازی دادههای ترتیبی.
معایب:
- 🚫 اندازه ثابت و عدم امکان تغییر پس از تعریف.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
ویژگیها:
- 📏 اندازه ثابت: بعد از تعریف، تغییر نمیکند.
- 🚀 دسترسی سریع: با استفاده از اندیس، دسترسی به هر عنصر با زمان ثابت (O(1)) انجام میشود.
- 🧮 همگن بودن: همه عناصر از یک نوع داده هستند.
انواع:
1. آرایه یکبعدی: لیستی ساده از دادهها 📃
2. آرایه دوبعدی: شبیه جدول یا ماتریس 🧮
مزایا:
- 💡 کاربرد ساده و مناسب برای ذخیرهسازی دادههای ترتیبی.
معایب:
- 🚫 اندازه ثابت و عدم امکان تغییر پس از تعریف.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Media is too big
VIEW IN TELEGRAM
متا (Meta) در حال پیشبرد یک فرمول موفقیتآمیز است که دستبندهای عصبی (neural wrist bands) را با عینکهای واقعیت افزوده نسل جدید (AR glasses) ترکیب کرده است. این فناوری به کاربر اجازه میدهد تا با استفاده از حرکات عصبی و بدون نیاز به لمس مستقیم، عینکها را کنترل کند.
نکته جالب اینجاست که در یک دنیای موازی، شاید تصور میشد که این ترکیب جدید توسط اپل عرضه شود، نه متا. اما در عوض، اپل محصول Vision Pro را ارائه کرده که با فناوری متفاوتی کار میکند و بیشتر روی واقعیت مجازی (VR) تمرکز دارد تا واقعیت افزوده (AR).
به طور خلاصه، متا با این ترکیب دستبندهای عصبی و عینکهای AR، در حال ارائه تکنولوژیای است که میتوانست انتظار رود اپل آن را به عنوان یک نوآوری جدید عرضه کند.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
نکته جالب اینجاست که در یک دنیای موازی، شاید تصور میشد که این ترکیب جدید توسط اپل عرضه شود، نه متا. اما در عوض، اپل محصول Vision Pro را ارائه کرده که با فناوری متفاوتی کار میکند و بیشتر روی واقعیت مجازی (VR) تمرکز دارد تا واقعیت افزوده (AR).
به طور خلاصه، متا با این ترکیب دستبندهای عصبی و عینکهای AR، در حال ارائه تکنولوژیای است که میتوانست انتظار رود اپل آن را به عنوان یک نوآوری جدید عرضه کند.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
قدرت لیستهای پیوندی تکسویه!
🔍 لیست پیوندی تکسویه چیست؟
یک لیست پیوندی تکسویه از گرههایی تشکیل شده که هر کدام شامل داده و اشارهگری به گره بعدی است. این ترتیب خطی امکان تخصیص پویا حافظه را فراهم میکند و درجها و حذفهای کارآمدی را امکانپذیر میسازد.
📊 چرا لیستهای پیوندی تکسویه مهم هستند؟
اندازه پویا: برخلاف آرایهها که اندازه ثابتی دارند، لیستهای پیوندی میتوانند بسته به نیاز رشد کرده یا کوچک شوند، و برای برنامههایی که اندازه داده در آنها متغیر است، ایدهآل هستند.
عملیات کارآمد: اضافه کردن یا حذف گرهها، به ویژه در ابتدای یا انتهای لیست، سریع و کارآمد است—در بسیاری از موارد یک عملیات O(1)!
🌟 اجزای کلیدی:
گره ابتدایی (Head): نقطه شروع لیست که برای پیمایش در دادهها بسیار مهم است.
داده و مرجع بعدی: هر گره دارای داده و یک مرجع به گره بعدی است که زنجیرهای از گرهها را تشکیل میدهد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🔍 لیست پیوندی تکسویه چیست؟
یک لیست پیوندی تکسویه از گرههایی تشکیل شده که هر کدام شامل داده و اشارهگری به گره بعدی است. این ترتیب خطی امکان تخصیص پویا حافظه را فراهم میکند و درجها و حذفهای کارآمدی را امکانپذیر میسازد.
📊 چرا لیستهای پیوندی تکسویه مهم هستند؟
اندازه پویا: برخلاف آرایهها که اندازه ثابتی دارند، لیستهای پیوندی میتوانند بسته به نیاز رشد کرده یا کوچک شوند، و برای برنامههایی که اندازه داده در آنها متغیر است، ایدهآل هستند.
عملیات کارآمد: اضافه کردن یا حذف گرهها، به ویژه در ابتدای یا انتهای لیست، سریع و کارآمد است—در بسیاری از موارد یک عملیات O(1)!
🌟 اجزای کلیدی:
گره ابتدایی (Head): نقطه شروع لیست که برای پیمایش در دادهها بسیار مهم است.
داده و مرجع بعدی: هر گره دارای داده و یک مرجع به گره بعدی است که زنجیرهای از گرهها را تشکیل میدهد.
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🌟 پردازش زبان طبیعی (NLP) در زبان فارسی: چالشها و فرصتها 🌟
کار با پردازش زبان طبیعی (NLP) در زبان فارسی به دلیل برخی ویژگیهای خاص، با چالشهایی همراه است. این چالشها میتوانند به دلیل ساختار پیچیده زبان و محدودیت منابع داده به وجود بیایند. در ادامه به برخی از این چالشها اشاره میکنیم:
1️⃣ پیچیدگیهای ساختاری زبان فارسی: زبان فارسی دارای ویژگیهایی همچون صرف فعلها، ضمایر متصل، و نشانههایی مثل "ها" و "ی" است که پردازش جملات را پیچیدهتر میکند.
2️⃣ کمبود دادههای معتبر و بزرگ: در مقایسه با زبانهایی مانند انگلیسی، مجموعه دادههای بزرگ و آماده برای فارسی کمتر است و این مسئله دقت مدلهای NLP را کاهش میدهد.
3️⃣ متنهای غیررسمی در شبکههای اجتماعی: پیامهای شبکههای اجتماعی پر از اشتباهات املایی، اختصارات و کلمات محاورهای است که پردازش خودکار آنها را دشوار میسازد.
4️⃣ نبود ابزارهای استاندارد و پیشرفته: ابزارهای NLP برای زبانهای بزرگتر مثل انگلیسی توسعه یافتهاند و نسخههای فارسی آنها اغلب کمدقت یا ناکامل هستند.
5️⃣ چالش در جداسازی کلمات: نوشتار فارسی بهطور پیوسته است و فاصله بین کلمات همیشه مشخص نیست، که باعث دشواری در تشخیص دقیق کلمات میشود.
6️⃣ چندمعنایی و همریشه بودن کلمات: بسیاری از کلمات فارسی دارای معانی مختلف هستند و تشخیص معنای درست در جمله را پیچیده میکنند.
7️⃣ کمبود مدلهای زبانی تخصصی: مدلهای پیشآموزشدیده برای فارسی کم و معمولاً نیاز به تنظیم و آموزش دوباره دارند.
💡 هرچند که چالشها زیادند، اما پیشرفتهایی در این زمینه صورت گرفته و آینده روشنی برای پردازش زبان فارسی در حوزه NLP قابل تصور است!
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
کار با پردازش زبان طبیعی (NLP) در زبان فارسی به دلیل برخی ویژگیهای خاص، با چالشهایی همراه است. این چالشها میتوانند به دلیل ساختار پیچیده زبان و محدودیت منابع داده به وجود بیایند. در ادامه به برخی از این چالشها اشاره میکنیم:
1️⃣ پیچیدگیهای ساختاری زبان فارسی: زبان فارسی دارای ویژگیهایی همچون صرف فعلها، ضمایر متصل، و نشانههایی مثل "ها" و "ی" است که پردازش جملات را پیچیدهتر میکند.
2️⃣ کمبود دادههای معتبر و بزرگ: در مقایسه با زبانهایی مانند انگلیسی، مجموعه دادههای بزرگ و آماده برای فارسی کمتر است و این مسئله دقت مدلهای NLP را کاهش میدهد.
3️⃣ متنهای غیررسمی در شبکههای اجتماعی: پیامهای شبکههای اجتماعی پر از اشتباهات املایی، اختصارات و کلمات محاورهای است که پردازش خودکار آنها را دشوار میسازد.
4️⃣ نبود ابزارهای استاندارد و پیشرفته: ابزارهای NLP برای زبانهای بزرگتر مثل انگلیسی توسعه یافتهاند و نسخههای فارسی آنها اغلب کمدقت یا ناکامل هستند.
5️⃣ چالش در جداسازی کلمات: نوشتار فارسی بهطور پیوسته است و فاصله بین کلمات همیشه مشخص نیست، که باعث دشواری در تشخیص دقیق کلمات میشود.
6️⃣ چندمعنایی و همریشه بودن کلمات: بسیاری از کلمات فارسی دارای معانی مختلف هستند و تشخیص معنای درست در جمله را پیچیده میکنند.
7️⃣ کمبود مدلهای زبانی تخصصی: مدلهای پیشآموزشدیده برای فارسی کم و معمولاً نیاز به تنظیم و آموزش دوباره دارند.
💡 هرچند که چالشها زیادند، اما پیشرفتهایی در این زمینه صورت گرفته و آینده روشنی برای پردازش زبان فارسی در حوزه NLP قابل تصور است!
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
This media is not supported in your browser
VIEW IN TELEGRAM
تشخیص شیء با یک تصویر
🔹 دانشگاه Delft به همراه Hensoldt Optronics روش جدیدی به نام OSSA معرفی کردهاند که یک روش تطبیق حوزه بدون نظارت برای تشخیص اشیاء است. این روش تنها از یک تصویر هدف بدون برچسب استفاده میکند تا سبک حوزه هدف را تخمین بزند. هدف این روش، کاهش نیاز به جمعآوری دادههای وسیع است. همچنین کد منبع آن منتشر شده است.
🎯 نکات کلیدی:
✅ تطبیق سبک یکشات بدون نظارت در سطح پیشرفته
✅ استفاده از یک تصویر برای گرفتن سبک یک مجموعه داده
✅ کاهش قابل توجه نیاز به دادههای گسترده
✅ پوشش سبکها در زمینههای مختلف مانند شرایط آبوهوایی
✅ تطبیق بین دنیای مصنوعی و واقعی، یا تصاویر بصری و مادون قرمز
Paper arxiv.org/pdf/2410.00900
Code github.com/RobinGerster7/OSSA
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🔹 دانشگاه Delft به همراه Hensoldt Optronics روش جدیدی به نام OSSA معرفی کردهاند که یک روش تطبیق حوزه بدون نظارت برای تشخیص اشیاء است. این روش تنها از یک تصویر هدف بدون برچسب استفاده میکند تا سبک حوزه هدف را تخمین بزند. هدف این روش، کاهش نیاز به جمعآوری دادههای وسیع است. همچنین کد منبع آن منتشر شده است.
🎯 نکات کلیدی:
✅ تطبیق سبک یکشات بدون نظارت در سطح پیشرفته
✅ استفاده از یک تصویر برای گرفتن سبک یک مجموعه داده
✅ کاهش قابل توجه نیاز به دادههای گسترده
✅ پوشش سبکها در زمینههای مختلف مانند شرایط آبوهوایی
✅ تطبیق بین دنیای مصنوعی و واقعی، یا تصاویر بصری و مادون قرمز
Paper arxiv.org/pdf/2410.00900
Code github.com/RobinGerster7/OSSA
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
قضیه آکرا-بازی یک روش قدرتمند برای تحلیل بازگشتیها در ساختمان دادهها و الگوریتمهاست. این قضیه به ما کمک میکند تا پیچیدگی زمانی الگوریتمهای بازگشتی را دقیقتر محاسبه کنیم، به ویژه زمانی که مسأله به بخشهای مساوی تقسیم میشود. در این توضیح، بازگشت به صورت تقسیم مسأله به دو بخش مساوی و حل هر بخش تعریف شده است. با استفاده از فرمول آکرا-بازی و تعیین پارامترهای مناسب، میتوان پیچیدگی کلی را بدست آورد. 🧠📊
Source : https://www.geeksforgeeks.org/akra-bazzi-method-for-finding-the-time-complexities/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
Source : https://www.geeksforgeeks.org/akra-bazzi-method-for-finding-the-time-complexities/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🌟 مبحث 𝗲𝗺𝗯𝗲𝗱𝗱𝗶𝗻𝗴 ها در پردازش زبان طبیعی (NLP): راهنمای سریع و ساده 🌟
امبدینگها بخش مهمی از پردازش زبان طبیعی (NLP) هستند. اونها متن رو به اعداد تبدیل میکنند تا بتونیم با مدلهای هوش مصنوعی، معانی و ارتباط بین کلمات رو بهتر درک کنیم و پردازش کنیم. این اعداد به مدلهای زبان بزرگ (LLM) مثل BERT و GPT داده میشن تا متن جدیدی تولید یا پردازش بشه.
در این پست، قدمهای اصلی برای تولید امبدینگها در NLP رو خلاصه کردم. بزن بریم! 👇
✂️ 𝗧𝗼𝗸𝗲𝗻𝗶𝘇𝗮𝘁𝗶𝗼𝗻
توکنسازی یعنی تقسیم متن به واحدهای کوچکتر به نام "توکن". بسته به مدل، این توکنها ممکنه کلمات، زیرکلمات یا حتی حروف باشن. این مرحله یکی از کلیدیترین مراحل برای درک الگوهای زبانیه.
➡️ مثال:
- جمله: ["I'm the fastest."]
- توکنسازی کلمه: ["I'm", "the", "fastest"]
- توکنسازی زیرکلمه: ["I", "'m", "the", "fast", "est"]
🔍 𝗟𝗲𝗺𝗺𝗮𝘁𝗶𝘇𝗮𝘁𝗶𝗼𝗻
لماسازی یعنی تبدیل کلمات به ریشهشون، یا همون لِمّا.
➡️ مثال:
"fishing" → "fish"،
"dogs" → "dog".
این کار کمک میکنه کلماتی که معنی یکسان دارن (مثل "fish"، "fishes"، و "fishing") همگی به یک شکل پردازش بشن. نتیجش؟ کاهش پیچیدگی و افزایش سرعت پردازش.
🔢 𝗩𝗲𝗰𝘁𝗼𝗿𝗶𝘇𝗮𝘁𝗶𝗼𝗻 & 𝗘𝗺𝗯𝗲𝗱𝗱𝗶𝗻𝗴𝘀
حالا که توکنها آمادهان، باید اونها رو به عدد تبدیل کنیم. روشهای سادهای مثل "کدگذاری یکداغ" (one-hot) وجود داره، ولی این روشها نمیتونن ارتباطات پیچیده رو خوب نشون بدن. اما امبدینگها توکنها رو به یک فضای عددی متراکم و پیوسته نگاشت میکنن که میتونه هم روابط معنایی و هم نحوی رو درک کنه.
بذار یه مثال بزنم:
در فضای سهبعدی (ویژگیهای بالها، آسمان، موتور):
در واقع "Drone" و "Helicopter" به هم نزدیکن چون هر دو موتور دارن و در آسمان هستن.
- ولی "goose" و "rocket" فاصله بیشتری دارن، چون فقط ویژگی "آسمان" رو مشترک دارن.
تا همین چند سال پیش، مدلهایی مثل 𝗪𝗼𝗿𝗱𝟮𝗩𝗲𝗰 و 𝗚𝗹𝗼𝗩𝗲 برای آموزش اولیه امبدینگها استفاده میشدن. اما حالا مدلهایی مثل 𝗕𝗘𝗥𝗧 و LLMهای جدید مثل 𝗔𝗱𝗮 یا 𝗠𝗶𝘀𝘁𝗿𝗮𝗹 رو داریم که خیلی پیشرفتهتر عمل میکنن.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
امبدینگها بخش مهمی از پردازش زبان طبیعی (NLP) هستند. اونها متن رو به اعداد تبدیل میکنند تا بتونیم با مدلهای هوش مصنوعی، معانی و ارتباط بین کلمات رو بهتر درک کنیم و پردازش کنیم. این اعداد به مدلهای زبان بزرگ (LLM) مثل BERT و GPT داده میشن تا متن جدیدی تولید یا پردازش بشه.
در این پست، قدمهای اصلی برای تولید امبدینگها در NLP رو خلاصه کردم. بزن بریم! 👇
✂️ 𝗧𝗼𝗸𝗲𝗻𝗶𝘇𝗮𝘁𝗶𝗼𝗻
توکنسازی یعنی تقسیم متن به واحدهای کوچکتر به نام "توکن". بسته به مدل، این توکنها ممکنه کلمات، زیرکلمات یا حتی حروف باشن. این مرحله یکی از کلیدیترین مراحل برای درک الگوهای زبانیه.
➡️ مثال:
- جمله: ["I'm the fastest."]
- توکنسازی کلمه: ["I'm", "the", "fastest"]
- توکنسازی زیرکلمه: ["I", "'m", "the", "fast", "est"]
🔍 𝗟𝗲𝗺𝗺𝗮𝘁𝗶𝘇𝗮𝘁𝗶𝗼𝗻
لماسازی یعنی تبدیل کلمات به ریشهشون، یا همون لِمّا.
➡️ مثال:
"fishing" → "fish"،
"dogs" → "dog".
این کار کمک میکنه کلماتی که معنی یکسان دارن (مثل "fish"، "fishes"، و "fishing") همگی به یک شکل پردازش بشن. نتیجش؟ کاهش پیچیدگی و افزایش سرعت پردازش.
🔢 𝗩𝗲𝗰𝘁𝗼𝗿𝗶𝘇𝗮𝘁𝗶𝗼𝗻 & 𝗘𝗺𝗯𝗲𝗱𝗱𝗶𝗻𝗴𝘀
حالا که توکنها آمادهان، باید اونها رو به عدد تبدیل کنیم. روشهای سادهای مثل "کدگذاری یکداغ" (one-hot) وجود داره، ولی این روشها نمیتونن ارتباطات پیچیده رو خوب نشون بدن. اما امبدینگها توکنها رو به یک فضای عددی متراکم و پیوسته نگاشت میکنن که میتونه هم روابط معنایی و هم نحوی رو درک کنه.
بذار یه مثال بزنم:
در فضای سهبعدی (ویژگیهای بالها، آسمان، موتور):
در واقع "Drone" و "Helicopter" به هم نزدیکن چون هر دو موتور دارن و در آسمان هستن.
- ولی "goose" و "rocket" فاصله بیشتری دارن، چون فقط ویژگی "آسمان" رو مشترک دارن.
تا همین چند سال پیش، مدلهایی مثل 𝗪𝗼𝗿𝗱𝟮𝗩𝗲𝗰 و 𝗚𝗹𝗼𝗩𝗲 برای آموزش اولیه امبدینگها استفاده میشدن. اما حالا مدلهایی مثل 𝗕𝗘𝗥𝗧 و LLMهای جدید مثل 𝗔𝗱𝗮 یا 𝗠𝗶𝘀𝘁𝗿𝗮𝗹 رو داریم که خیلی پیشرفتهتر عمل میکنن.
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
🔥 دوره کامل "Deep Gen-AI" 🔥
یک دوره جدید از استنفورد که به مبانی احتمالاتی و الگوریتمهای مدلهای زایشی عمیق میپردازد. این دوره نگاهی کلی به پیشرفتهای هوش مصنوعی زایشی در بینایی کامپیوتر، زبان و سایر حوزهها دارد...
👉Course https://youtube.com/playlist?list=PLoROMvodv4rPOWA-omMM6STXaWW4FvJT8&si=uFeCdvXKSH30Vtgr
👉Lectures https://deepgenerativemodels.github.io/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
یک دوره جدید از استنفورد که به مبانی احتمالاتی و الگوریتمهای مدلهای زایشی عمیق میپردازد. این دوره نگاهی کلی به پیشرفتهای هوش مصنوعی زایشی در بینایی کامپیوتر، زبان و سایر حوزهها دارد...
👉Course https://youtube.com/playlist?list=PLoROMvodv4rPOWA-omMM6STXaWW4FvJT8&si=uFeCdvXKSH30Vtgr
👉Lectures https://deepgenerativemodels.github.io/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
مرتبسازی جایگشتی (Permutation Sort) یک روش تئوری و جالب برای مرتب کردن دادههاست. 🧠 این الگوریتم تمام ترکیبهای ممکن از عناصر یک لیست را بررسی میکند تا به دنبال ترتیب صحیح بگردد. 🎲 به عبارت دیگر، اگر شما لیستی از اعداد داشته باشید، این روش همه حالتهای ممکن (یا همان جایگشتها) رو میسازد و در نهایت آن ترتیبی که درست مرتب شده باشد را پیدا میکند. 🔍
اما چون تعداد جایگشتها با بزرگ شدن تعداد عناصر، بهصورت نمایی زیاد میشود (با مرتبه زمانی O(n!)، این الگوریتم برای لیستهای بزرگ به هیچ وجه کارآمد نیست! 🚫 بنابراین، مرتبسازی جایگشتی بیشتر برای فهم تئوری مرتبسازی استفاده میشود تا بهعنوان روشی عملی.
👾 در واقع، این الگوریتم مثل این میمونه که بخواید همه کلیدهای ممکن رو امتحان کنید تا بالاخره در قفل باز بشه! 🗝
اطلاعات بیشتر :
👉 https://www.geeksforgeeks.org/bogosort-permutation-sort/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
اما چون تعداد جایگشتها با بزرگ شدن تعداد عناصر، بهصورت نمایی زیاد میشود (با مرتبه زمانی O(n!)، این الگوریتم برای لیستهای بزرگ به هیچ وجه کارآمد نیست! 🚫 بنابراین، مرتبسازی جایگشتی بیشتر برای فهم تئوری مرتبسازی استفاده میشود تا بهعنوان روشی عملی.
👾 در واقع، این الگوریتم مثل این میمونه که بخواید همه کلیدهای ممکن رو امتحان کنید تا بالاخره در قفل باز بشه! 🗝
اطلاعات بیشتر :
👉 https://www.geeksforgeeks.org/bogosort-permutation-sort/
#الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
💻✨ XGBoost: الگوریتمی قدرتمند در یادگیری ماشین!
در واقع XGBoost (Extreme Gradient Boosting) یک الگوریتم فوقالعاده برای حل مسائل رگرسیون و طبقهبندی است که به دلیل کارایی و سرعت بالایش شناخته میشود. این الگوریتم بر اساس مفهوم "تقویت گرادیان" کار میکند، جایی که درختهای تصمیم بهطور مرحلهای ایجاد میشوند تا خطاهای درختهای قبلی را جبران کنند. 🌲📈
ویژگیهای کلیدی XGBoost:
- عملکرد سریع: با بهینهسازیهای خاص، مانند محاسبات موازی، XGBoost سرعت بالایی دارد. ⚡️
- قابلیت تنظیم پارامترها: دارای پارامترهای زیاد برای بهبود دقت مدل است.
- مدیریت دادههای مفقود: بهطور خودکار با دادههای ناقص کار میکند. 🗂
- کنترل برفک (Regularization): از تکنیکهای تنظیم برای جلوگیری از اورفیتینگ استفاده میکند.
مزایای XGBoost:
- دقت بالا: در مسابقات دادهکاوی عملکرد فوقالعادهای دارد. 🏆
- قابلیت تفسیر: میتوانید اهمیت ویژگیها را بررسی کنید.
- انعطافپذیری: برای انواع مسائل پیشبینی مناسب است.
اطلاعات بیشتر :
👉 https://www.nvidia.com/en-us/glossary/xgboost/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
در واقع XGBoost (Extreme Gradient Boosting) یک الگوریتم فوقالعاده برای حل مسائل رگرسیون و طبقهبندی است که به دلیل کارایی و سرعت بالایش شناخته میشود. این الگوریتم بر اساس مفهوم "تقویت گرادیان" کار میکند، جایی که درختهای تصمیم بهطور مرحلهای ایجاد میشوند تا خطاهای درختهای قبلی را جبران کنند. 🌲📈
ویژگیهای کلیدی XGBoost:
- عملکرد سریع: با بهینهسازیهای خاص، مانند محاسبات موازی، XGBoost سرعت بالایی دارد. ⚡️
- قابلیت تنظیم پارامترها: دارای پارامترهای زیاد برای بهبود دقت مدل است.
- مدیریت دادههای مفقود: بهطور خودکار با دادههای ناقص کار میکند. 🗂
- کنترل برفک (Regularization): از تکنیکهای تنظیم برای جلوگیری از اورفیتینگ استفاده میکند.
مزایای XGBoost:
- دقت بالا: در مسابقات دادهکاوی عملکرد فوقالعادهای دارد. 🏆
- قابلیت تفسیر: میتوانید اهمیت ویژگیها را بررسی کنید.
- انعطافپذیری: برای انواع مسائل پیشبینی مناسب است.
اطلاعات بیشتر :
👉 https://www.nvidia.com/en-us/glossary/xgboost/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
NN-SVG
یک ابزار بسیار کارآمد برای تولید نمودارهای معماری شبکههای عصبی است. این ابزار به پژوهشگران اجازه میدهد تا به سرعت و به راحتی نمودارهایی با کیفیت بالا و قابل چاپ برای شبکههای عصبی مختلف (مانند CNN و FCNN) تولید کنند. یکی از ویژگیهای مهم NN-SVG این است که نمودارها را در فرمت SVG ارائه میدهد، که به راحتی قابل ویرایش و بدون افت کیفیت در مقیاسبندی است. 🌐🖼
کاربران میتوانند با تنظیم پارامترهای مختلف مانند تعداد لایهها، گرهها و ساختار شبکه، نمودار نهایی را شخصیسازی کنند. این ابزار به ویژه برای کسانی که مرتباً به این نوع نمودارها نیاز دارند، فرایند تولید را سریعتر و سادهتر میکند. اگر به دنبال ایجاد نمودارهای حرفهای برای پژوهشهای خود هستید، NN-SVG یک انتخاب عالی است. 🎓📊
https://alexlenail.me/NN-SVG/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer
یک ابزار بسیار کارآمد برای تولید نمودارهای معماری شبکههای عصبی است. این ابزار به پژوهشگران اجازه میدهد تا به سرعت و به راحتی نمودارهایی با کیفیت بالا و قابل چاپ برای شبکههای عصبی مختلف (مانند CNN و FCNN) تولید کنند. یکی از ویژگیهای مهم NN-SVG این است که نمودارها را در فرمت SVG ارائه میدهد، که به راحتی قابل ویرایش و بدون افت کیفیت در مقیاسبندی است. 🌐🖼
کاربران میتوانند با تنظیم پارامترهای مختلف مانند تعداد لایهها، گرهها و ساختار شبکه، نمودار نهایی را شخصیسازی کنند. این ابزار به ویژه برای کسانی که مرتباً به این نوع نمودارها نیاز دارند، فرایند تولید را سریعتر و سادهتر میکند. اگر به دنبال ایجاد نمودارهای حرفهای برای پژوهشهای خود هستید، NN-SVG یک انتخاب عالی است. 🎓📊
https://alexlenail.me/NN-SVG/
#هوش_مصنوعی
📣👨💻 @AlgorithmDesign_DataStructuer