𝐈𝐍 𝐆𝐎𝐃 𝐖𝐄 𝐓𝐑𝐔𝐒𝐓 🕋
We comply with Telegram's guidelines:
- No financial advice or scams
- Ethical and legal content only
- Respectful community
Join us for market updates, airdrops, and crypto education!
Last updated 1 week, 1 day ago
[ We are not the first, we try to be the best ]
Last updated 2 months, 3 weeks ago
FAST MTPROTO PROXIES FOR TELEGRAM
Ads : @IR_proxi_sale
Last updated 2 months ago
تسلا روبووَن و روبوتاکسی را معرفی کرد...
فرمون بی فرمون!
به آینده خوش آمدید.
https://www.caranddriver.com/news/a62567491/tesla-robotaxi-reveal/
نوبل شیمی هم به سازندگان AlphaFold رسید…
شبکههای عصبی کولموگروف-آرنولد (KANs)
درشبکههای عصبی، ما معمولا بهدنبال تخمینزدن یک تابع چندمتغیرهی پیوستهی بسیار پیچیده هستیم!
در شبکههای عصبی سنتی (MLP ها)، هر سیگنال ورودی بهصورت خطی، در یک پارامتر (وزن یالها) ضرب شده، حاصل این ضربها وارد node های لایههای بعدی شده و آنجا با هم تجمیع (+) میشوند و حاصلجمع از یک تابع غیرخطیِ ثابت (Activation Function) مثل ReLU یا Sigmoid عبور میکند. قضیهی Universal Approximation میگه، از نگاه تئوری، یک MLP با فقط با یک لایهی پنهان (شامل تعداد نورون متناهی اما گاها خیلی زیاد) قادرست هر تابع چندمتغیرهی پیوسته، با هر میزان پیچیدگی را با هر دقتی که مدنظر ما باشد، تخمین بزند.
شبکههای KAN اما براساس قضیهی Kolmogorov-Arnold Representation شکل گرفتهاند که میگه، هر تابع چندمتغیرهی پیوسته (هرچند پیچیده) رو میشه بهصورت جمع تعداد متناهی (اما گاها بسیار زیاد) تابع تک متغیرهی پیوسته نوشت (بهصورت دقیق!) بنابراین، در شبکههای KAN، هر سیگنال ورودی بهجای ضرب ساده و خطی در یک پارامتر ثابت (وزن یال)، از یک تابع تکمتغیرهی پیوسته (آموزش دیدهشده) میگذرد و هر نورون فقط مسئول تجمیع (+) خروجی این توابعست. درواقع، بهجای هر وزن روی هر یال، یک تابع آموزش داده میشود و بنابراین هر نورون میتواند فقط شامل یک جمع ساده باشد.
توابعی که روی هر یال، آموزش میبینند، از نوع Spline اند. توابع اسپلاین، در بازههای مختلف و متفاوت از دامنهی خود بهشکل چندجملهایهای مجزا تعریف شده و قادرند هر منحنی (هرچند پیچیده) را تخمین بزنند. ازین رو گزینهی مناسبی برای توابع آموزشپذیر در KAN ها اند.
یکی از مشکلات شبکههای عصبی سنتی، فراموشی ناگوار (Catastrophic Forgetting) است. وقتی یک دادهی جدید را به شبکه آموزش میدهیم، تعداد بسیار زیادی پارامتر تغییر میکنند (به علت تاثیر هر تابع فعالسازی بر تعداد بسیار زیادی پارامتر روی یالهای ورودی به نورون) و ممکنست دانشی که از دادههای قبلی بهدست آمده، فراموش شود. اما در KAN ها به علت محلی بودن هر تابع اسپلاین، تعداد بسیار کمتری پارامتر تغییر کرده و فراموشی ناگوار در این شبکهها بهمراتب کمترست و این شبکهها نسبت به نویز مقاومترند.
باتوجه به قدرت بالای توابع اسپلاین در یادگیری توابع غیر خطی، و همینطور مشخصبودن یالهای بیاهمیت و قابل هرس (Pruning) از روی تابع تخمینزدهشده، تعداد لایههای مورد نیاز در کل شبکه و تعداد نورونهای هر لایه، میتوانند بهمراتب کمتر بوده و با تعداد پارامتر آموزشپذیر کمتر به Generalization بیشتر و سریعتر رسید. ازطرفی مدلهای KAN بسیار تفسیرپذیرتر بوده و میتوانند ضابطهی ریاضی تابع تخمینزدهشدهی نهایی را نیز معرفی کنند! (شکل زیر)
با این همه خوبی، آیا قراره شبکههای KAN جایگزین شبکههای فعلی در هوش مصنوعی شن؟! معلومه که نه! اساس پیشرفت شبکههای عصبی در سالهای اخیر، استفاده از GPU برای ضرب بهینهی همین ماتریسهای وزنیست که در KAN حذف شده ? بنابراین (تا جایی که فعلا میدونیم) این شبکهها برای کاربردهای علمی و مهندسی مناسباند نه پردازش الگوهای پیچیده مثل بینایی ماشین و مدلسازی زبان.
پدیدهی Double Descent
در یادگیری ماشین، میدانید که اگر مدل خیلی سادهتر از حد نیاز باشد، آموزش نمیبیند و درنهایت، پس از چند تلاش، کمبرازش (Underfit) خواهد شد. هرچه مدل را پیچدهتر کنیم (مثلا تعداد پارامترها را بیشتر کنیم)، بیشتر آموزش میبیند و قابلیت تعمیم (Generalization) آن بهتر میشود. این بهترشدن قابلت تعمیم، از روی کاهش مقدار خطا بهازای دادههای ارزیابی مشخصست.
اما این خطا تا کجا کاهش مییابد؟ آیا هرچهقدر مدل پیچیدهتر شود، خطای ارزیابی آن کمتر و قابلیت تعمیم آن بیشتر میشود؟!
در مدلهای سادهتر و سنتیتر یادگری ماشین، هرچه مدل پیچیدهتر میشد، نیاز به دادهی آموزشی بیشتری هم داشت. بنابراین با ثابت بودن سایز مجموعه داده، افزایش پیچیدگی از یکجا به بعد باعث بیشبرازش (Overfitting) مدل و حفظکردن دادهها و نویزها میشد و قابلیت تعمیم مدل از بین میرفت.
اما در دنیای مدلهای جدید (مثلا مدلهای زبانی بزرگ) شاهد آنیم که مدل هرچه بزرگتر و پیچیدهتر میشود قدرتمندتر و قابل تعمیمتر میشود! این تناقض ناشی از چیست؟!
از پدیدهی جالبی بهنام Double Descent که در شبکههای عصبی بسیار بزرگ دیده میشود. نوعی Regularization ضمنی که ظاهرا بهعلت رویهی آموزش (مثلا الگوریتم کاهش گرادیان) اتفاق میافتد. در این حالت، با پیچیدهتر شدن مدل (مثلا بیشترشدن تعداد پارامترها)، ابتدا خطای ارزیابی کاهش یافته، پس از آن در جایی با پدیدهی بیشبرازش روبهرو شده و خطای ارزیابی افزایش مییابد، اما با پیچیدهترشدن مدل، از جایی به بعد، برای بار دوم خطای ارزیابی کاهشی شده و عمومیت مدل بهتر میشود!
تصویر زیر را ببینید ???
واژهی AI Agent (عامل هوشمصنوعی) واژهایست که علاقهمندان به AI این روزها زیاد باهاش روبهرو میشن. بنابراین در این پست به توضیح این مفهوم میپردازیم.
این مفهوم جدید نیست و پیشتر با عنوان Intelligent Agent در هوش مصنوعی بررسی میشد. اخیرا این مفهوم شکل و شمایل مدرنتری به خود گرفته و تحت نام AI Agent پوستاندازی کردهست.
در تعریف قدیمی، Intelligent Agent سامانهای (نرمافزاری یا سختافزاری یا ترکیبی) است که محیط (Environment) پیرامون خود را از طریق حسگرها (Sensors) ها، مشاهده و درک کرده (Perception)، بر اساس یک هدفی که برای او تعریف شده (Agent Goal) و اجرای یک برنامهی تصمیمگیری (Agent Function) عملی (Action) را از میان اعمال ممکن انتخاب کرده و توسط عملگرهای خود (Actuators) آن عمل را در محیط انجام میدهد. انجام آن عمل در محیط، وضعیت (State) را تغییر داده و تمامی این مراحل در یک حلقه، تکرار میشوند تا درنهایت عامل به هدف خود برسد.
این مفهوم، از ابتدا یک ایدهی مناسب برای مدلکردن سامانههای هوشمند مثل انواع روباتها، اتومبیلهای خودران، برنامههای هوش مصنوعی و … بود.
با پیدایش مدلهای بنیادین مثل LLM ها، دنیای نرمافزار هم دچار انقلاب شده و علاقه به توسعهی نرمافزارها، سرویسها و دستیارهای هوشمند و خودمختار افزایش یافتهست.
در توسعهی نرمافزار کلاسیک، همهیکارها روی دوش توسعهدهنده است، توسعهدهنده، هدف برنامه رو مشخص میکند، این هدف رو به تعدادی task کوچکتر میشکند، خروجی هر task را مشخص میکند و منطق ترتیب انتخاب task ها را در برنامه مینویسد.
با همهگیرشدن LLMها، خیلی از برنامهها LLM-powered شدند، در این برنامهها همچنان توسعهدهنده هدف برنامه رو مشخص میکند، این هدف رو به تعدادی task کوچکتر میشکند و منطق ترتیب انتخاب task ها را در برنامه مینویسد. اما خروجی هر task بر اساس یک پرامپت ورودی به یک LLM به دست میآید.
این سبک طراحی و توسعهی محصول، خیلی سریع جای خود رو به RAG-based application ها داد. در اپلیکیشنهای RAG، برای یافتن خروجی هر task فقط به دانشی که LLM موقع آموزش دیدهست بسنده نمیشود و دانش بهروزتر و کاملتری همراه با پرامپت به LLM داده میشود تا با توجه به آن دانش، خروجی task را مشخص کند.
با افزایش توان استدلال LLM ها، منطق اجرایی برنامهها نیز به LLM ها سپرده شد (توسعه نرمافزارهای مبتنی بر Chain و Router). به عبارت دیگر توسعهدهنده، هدف برنامه رو مشخص میکند و این هدف رو به تعدادی task کوچکتر میشکند، اما خروجی هر task و منطق ترتیب انتخاب task ها توسط LLM انجام میشود.
و اما ترند این روزها در توسعهی سرویسهای نرمافزاری ظاهرا به سمت AI Agent ها در حرکتست. در این نرمافزارها، توسعهدهنده، فقط هدف برنامه رو مشخص میکند، یک LLM سعی میکند آن هدف را بررسی و درک کرده، آن را به دنبالهای از task های کوچک و قابل دسترسی بشکند، با توجه به هدف، و اطلاعات جانبی که از محیط (پایگاههای دادهای، RAG، فایلها، سرچ، APIها و …) دریافت میکند، منطق و اولویت اجرای این task ها را مشخص کرده و در نهایت به ابزارها و Actuator های مربوطه دستور انجام task را میدهد. این عمل در یک حلقه، تکرار شده تا AI Agent به هدف خود برسد.
مثلا یک چتبات خدمات مشتریان را در نظر بگیرید که intent ها و action ها از قبل برای آن مشخص نشده و این عامل، طی تعامل با مشتری، با چرخیدن در پایگاههای داده و مستندات و بهصورت خودمختار اقدام به رفع مشکل میکند.
𝐈𝐍 𝐆𝐎𝐃 𝐖𝐄 𝐓𝐑𝐔𝐒𝐓 🕋
We comply with Telegram's guidelines:
- No financial advice or scams
- Ethical and legal content only
- Respectful community
Join us for market updates, airdrops, and crypto education!
Last updated 1 week, 1 day ago
[ We are not the first, we try to be the best ]
Last updated 2 months, 3 weeks ago
FAST MTPROTO PROXIES FOR TELEGRAM
Ads : @IR_proxi_sale
Last updated 2 months ago