یک معضل مدرن: چه موقع از قوانین در مقابل یادگیری ماشین استفاده کنید

ساخت وبلاگ

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

منطق تجارت ، محاسبات و گردش کار

بیایید ابتدا با درک منطق کسب و کار شروع کنیم. من در طول سالها با انواع مختلف منطق کار کرده ام و درک زمینه مهم است.

منطق تجارت چیست؟با ساده ترین شکل ، این منطق حاوی تصمیماتی است که حاکم بر یک فرایند تجاری است. این تصمیمات تصمیمات تجاری است. این منطق با بازار متغیر است و ممکن است اغلب بسته به محرک های صنعت خاص تغییر کند. منطق بر دلیل دلیل و زمان متمرکز است. در نهایت یک شرط قبل از انجام یک عمل باید صادق باشد.

منطق تجارت به طور معمول از محاسبات تجاری استفاده می کند. بر خلاف منطق تجارت ، محاسبات تجاری تمایل به یکسان بودن دارند. آنها روی آنچه و چگونه تمرکز می کنند. مهم است که این دو را از جنبه استقرار جدا کنید زیرا آنها با نرخ های مختلف تغییر می کنند. به عنوان یک قاعده کلی ، هر منطق قابل استفاده مجدد باید به طور مستقل قابل استقرار باشد. اگر منطق قابل استفاده مجدد با استقرار برنامه گره خورده باشد ، نمی توان به صورت جداگانه مورد استفاده قرار گرفت و با سایر مؤلفه ها همراه است. در حالت ایده آل ، ما می خواهیم قطعات قابل استفاده مجدد از یک برنامه را در میکروسرویس ها جدا کنیم تا آنها به طور مستقل قابل استفاده مجدد و قابل استفاده باشند. به عنوان نمونه به تصویر مارتین فاولر در زیر "شکل 1: یکپارچه و میکروسرویس" مراجعه کنید.

چگونه می توانیم مراحل مختلف منطق کسب و کار را به هم متصل کنیم؟گردش کار

آنها جریان ساختاری یا توالی کارهای کاری در یک فرآیند تجاری هستند. گردش کار می تواند مبتنی بر انسان ، مبتنی بر سیستم (به عنوان مثال ارکستراسیون) یا ترکیبی بین این دو باشد. در یک وبلاگ قبلی من بحث کردم که چه موقع باید در مقابل ارکسترات واکنش نشان دهم.

رویکردهای اجرای منطق کسب و کار

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

کد برنامه

photo of black screen with white lines of code

کاربرد زمانی مناسب است که منطق تغییر چندانی نداشته باشد و نسبتاً ساده باشد.

جدول تصمیم گیری

شرایط 1 HadSpeeding Ticket

جداول تصمیم برای منطق مناسب هستند که اغلب تغییر می کنند و دارای تعداد زیادی شرایط هستند که مدیریت آنها در جدول آسان تر از کد است.

موتور قوانین

flow chart made of blue rectangles and black arrows

موتور قواعد برای منطق مناسب است که اغلب تغییر می کند و بسیار پیچیده است و سطوح منطقی متعددی را در بر می گیرد. موتورهای قوانین معمولاً بخشی از یک سیستم مدیریت قوانین تجاری (BRMS) هستند که قابلیت های گسترده ای را برای مدیریت پیچیدگی ارائه می دهند.

اگر این راهنمایی را در ربع قرار دهیم، چیزی شبیه به زیر می شود:

light blue rectangle quadrant graph with red line showing decreasing slope and black text labels

نمودار استفاده از منطق تجاری

با افزایش میزان پیچیدگی و نرخ تغییر، کد برنامه دیگر برای منطق تجاری مناسب نیست. جداول تصمیم گیری با افزایش نرخ تغییر کمک می کند، اما در نهایت یک BRMS بهترین تناسب را برای نرخ بالای تغییر و پیچیدگی بالا فراهم می کند.

سیستم مدیریت قوانین کسب و کار (BRMS)

بیایید با بررسی نمای مرجع قابلیت زیر، نگاهی دقیق تر به قابلیت های یک BRMS بیندازیم:

screenshot of slide with navy rectangle column headers and bulleted lists below each block

نمای مرجع قابلیت BRMS

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

تدوین قوانین

  • یک قانون فنی یا قانون هدایت شده دو راه متفاوت را برای ایجاد قوانینی که برای کاربران نهایی متفاوت تنظیم شده اند، ارائه می دهد. قوانین فنی بیشتر برای مخاطبان توسعه دهنده شما هستند، جایی که قوانین هدایت شده از رویکرد نقطه و کلیک تشکیل شده اند که ممکن است برای کاربران فنی کمتر بهتر باشد.
  • زبان خاص دامنه (DSL) قابلیت دیگری است که می تواند کاربران غیر فنی را قادر سازد تا قوانین را به زبانی ساده تر بنویسند.
  • شبکه های عصبی شکلی از الگوریتم هایی هستند که در یادگیری ماشین استفاده می شوند، جالب است بدانید که برخی از BRMS ها با آن یکپارچه هستند.

مدیریت قوانین

مخزن قوانین یکی از قدرتمندترین قابلیت های یک BRMS است. این مکانیزمی است که در آن توسعه دهندگان می توانند بفهمند که قبلاً چه چیزی ساخته شده است و چه چیزی را می توانند دوباره استفاده کنند. ابرداده های قانون در اینجا ذخیره می شوند که برای درک هدف اساسی حیاتی است.

گسترش

به طور معمول ، قوانین می توانند از یکی از دو روش مستقر شوند - یا به عنوان بخشی از یک سرویس مستقل که از طریق تماس های API REST فراخوانی می شود ، یا به عنوان بخشی از برنامه (در فرآیند) تعبیه شده است. کمی بعد در این مقاله ، خواهیم دید که سیستم عامل های یادگیری ماشین یک مدل مشابه را به اشتراک می گذارند.

اجرای قانون و استقرار

زبان نشانه گذاری مدل پیش بینی (PMML) یا فرمت قابل حمل برای تجزیه و تحلیل (PFA) ، هر دو قالب استاندارد صنعت برای ساخت مدل ها قابل تعویض هستند. آنها به شما امکان می دهند یک مدل را به یک زبان یا بستر بسازید و آن را به زبان یا بستر دیگری که از PMML یا PFA پشتیبانی می کند ، بسازید.

یکی از این نمونه ها از BRMS ، افتادگی است. Drools یک موتور قوانین مبتنی بر جاوا با مجوز منبع باز است. این موتور از یک موتور استنتاج زنجیره ای رو به جلو و عقب پشتیبانی می کند که از الگوریتم phreak استفاده می کند. اگر می خواهید موتور قوانین تصمیم بگیرد که ترتیب قوانین شما را تصمیم بگیرد ، این موتور استنتاج مفید است. Drools قوانین هدایت شده ، قانون فنی DRL و پشتیبانی از زبان خاص دامنه (DSL) را فراهم می کند. Drools همچنین از هر دو مدل استقرار در فرآیند و مستقل پشتیبانی می کند.

سیستم عامل های یادگیری ماشین

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

screenshot of slide with navy rectangle column headers and bulleted lists below each block

نمای مرجع بستر یادگیری ماشین

بیایید برخی از قابلیت های کلیدی را لمس کنیم و دوباره با همپوشانی مشابه با نمای BRMS ارتباط برقرار کنیم.

مصرف داده ها

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

مهندسی ویژگی

ویژگی ها ورودی به مدل ها هستند و برخی از سیستم عامل های ML قابلیت های ایجاد این ویژگی ها را برای شما فراهم می کنند. برخی دیگر قابلیت هایی را ارائه می دهند که می توانند به طور خودکار ویژگی ها را برای شما ایجاد کنند.

الگوی مدل سازی

اینها الگوریتم های مختلفی هستند که می توانند در یک مدل یادگیری ماشین استفاده شوند. نکته مهمی که باید در اینجا توجه داشته باشید این است که آنها با دسته های یادگیری تحت نظارت ، بدون نظارت یا تقویت ارتباط ندارند ، بلکه می توانند در هر سه مورد استفاده شوند.

استقرار و اجرای

شما در این فضا ، به طور خاص در مراحل اولیه و مستقل API REST به همراه پشتیبانی از PMML ، برخی از شباهت ها را با قابلیت های BRMS مشاهده خواهید کرد.

مدیریت

یکی از مهمترین جنبه های مدیریت یک مدل یادگیری ماشین ، نظارت بر آن برای صحت است. یک مغالطه مشترک با یادگیری ماشین این است که یک مدل ML هرگز نیازی به آموزش مجدد ندارد زیرا می تواند خود را بیاموزد. این طور نیست که مدل های یادگیری ماشین باید هر چند وقت یکبار آموزش داده شوند ، زیرا داده هایی که در آنها آموزش داده می شوند ، از داده هایی که در تولید آنها در حال اجرا هستند شروع می شود.

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

ve diagram of overlapping blue and red circles with black text

مقایسه بین موتورهای قوانین و سیستم عامل های یادگیری ماشین

راهنمایی برای زمان استفاده از قوانین موتور در مقابل یادگیری ماشین

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

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

حال ، بیایید با استفاده از همین ابعاد به یادگیری ماشین نگاه کنیم:

  • منطق: منطق دقیق مشخص نیست. در عوض ورودی ها/ویژگی هایی که در ایجاد یک پیش بینی قابل توجه هستند ممکن است شناخته شود.
  • نوع منطق: پیش بینی مبتنی بر با استفاده از الگوریتم ها.
  • Logic Creation: ایجاد شده توسط نرم افزار یادگیری ماشین که با استفاده از الگوریتم ها از طریق آموزش اجرا می شود.
  • داده ها: برای تولید در نهایت منطق مدل استفاده می شود. مهمترین چیز در یادگیری ماشین است. شما می خواهید تا حد امکان از داده ها استفاده کنید و همچنین اطمینان حاصل کنید که داده ها بی طرفانه هستند. اگر داده ها مغرضانه باشند ، مدل مغرضانه می شود.

به طور خلاصه ، هنگامی که به دقت نیاز دارید ، قوانین را اهرم کنید و منطق را بدانید. یادگیری ماشین را وقتی می خواهید چیزی را پیش بینی کنید ، اما دقیقاً نمی دانید چگونه.

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

الگوهای استفاده از موتورهای یادگیری ماشین و قوانین با هم

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

الگوی 1: از خروجی های یادگیری ماشین به عنوان ورودی به قوانین استفاده کنید

در این الگوی ، دو مدل یادگیری ماشین متفاوت اجرا می شوند. یکی احتمال فروش خانه در 10 روز را تعیین می کند. دیگری احتمال فروشندگان را که قیمت درخواست را کاهش می دهد تعیین می کند. هر دوی این پیش بینی ها ورودی به قوانین هستند. سپس قوانین خروجی مدل را ارزیابی می کنند و در نهایت توصیه ای را به مسکن ارائه می دهند. به طور خاص ، اگر احتمال فروش خانه در 10 روز بیشتر از 50 ٪ باشد ، و احتمال فروشندگان که قیمت آن را کاهش می دهند کمتر از 50 ٪ است ، بنابراین این الگوی توصیه خاصی را برای مسکن ارائه می دهد.

flow chart of red rectangles pointing to a blue rectangle

الگوی 1: خروجی یادگیری ماشین به عنوان ورودی به قوانین

الگوی 2: خروجی های قانون اهرم به عنوان ورودی ویژگی در مدل های یادگیری ماشین

در این الگوی ، ما با قوانینی که ورودی به مدل های یادگیری ماشین است ، شروع می کنیم. قوانین برای تعیین ارزشهای مبتنی بر بولی ، منطق کسب و کار را اجرا می کنند. آیا خانه نیاز به تعمیرات دارد؟آیا فروش خارج از فصل است؟آیا فروشندگان می خواهند از خانه خلاص شوند و اکنون آن را بفروشند؟خروجی این قوانین سپس ویژگی هایی در مدل های یادگیری ماشین است. سپس مدل های یادگیری ماشین احتمال بازگشت به مسکن خانه را طی 10 روز و فروشندگان که قیمت را کاهش می دهند ، فراهم می کند. توجه در این الگوی توصیه ای به Realtor وجود ندارد ، بلکه احتمال ارائه شده و توصیه نهایی باقی مانده به Realtor است.

flow chart of 3 blue rectangles pointing to 2 red rectangles

الگوی 2: خروجی های قانون اهرم به عنوان ورودی ویژگی در مدل های یادگیری ماشین

الگوی 3: از هر دو قانون و خروجی یادگیری ماشین به عنوان ورودی استفاده کنید

در این الگوی ، ترکیبی از دو الگوی قبلی را دنبال می کند. هر دو قانون و خروجی های یادگیری ماشین ورودی به یک مدل یادگیری ماشین هستند. در این سناریو احتمال کاهش قیمت فروشندگان ، ورود به احتمال فروش خانه در 10 روز است. این الگوی همچنین توصیه نهایی را به Realtor می دهد.

flowchart of 3 blue rectangles pointing to 2 red rectangles

الگوی 3: از هر دو قانون و خروجی یادگیری ماشین به عنوان ورودی استفاده کنید

یک نمونه اجرا

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

بیایید آنچه را که ما در اثبات مفهوم در حال تغییر هستیم برای پشتیبانی از ادغام قوانین با یادگیری ماشین شروع کنیم. در زیر نمودار وجود دارد که معماری را نشان می دهد:

architecture of actor system consisting of turquoise rectangles, yellow circles, and white logos

معماری به عنوان مثال اثبات مفهوم

تمام مؤلفه های اثبات قبلی مفهوم صحیح است ، (لطفاً برای جزئیات بیشتر به وبلاگ قبلی مراجعه کنید زیرا من آنها را در اینجا تکرار نمی کنم). یک مورد جدید که ما معرفی کردیم قوانین مبتنی بر جاوا MS است. این قوانین میکروسرویس است که خروجی احتمال مدل یادگیری ماشین را ارزیابی می کند. H20 مقدار اطمینان را به عنوان بخشی از پیش بینی های خود تولید می کند. برای معامله ای که مدل یادگیری ماشین تعیین می کند خوب/جعلی نیست ، سرویس قوانین این مقدار اطمینان را بررسی می کند. اگر مقدار اعتماد به نفس کمتر از 50 ٪ باشد ، در این مورد ، در این مورد ، میزان برخی از چک های کلاهبرداری اضافی را ارزیابی می کند. در صورت عدم موفقیت ، این قانون توصیه می کند که معامله کلاهبرداری باشد.

در اینجا یک جریان توالی وجود دارد که در طول مراحل طی می شود:

flow chart showing proof of concept with white boxes and black text and arrows

حال بیایید نگاهی به کد MS Java Rules بیندازیم تا ببینیم که چگونه یک قانون Drools کار می کند.

ما می توانیم ببینیم که این استفاده از نحو drools drl است که راهی برای نوشتن قوانین فنی است. دو قانون وجود دارد که آیا معامله خوب است و خروجی یادگیری ماشین کمتر از 50 ٪ است. قانون اول همچنین بررسی می کند که آیا یک بررسی نام از بین می رود ، جایی که در صورت عدم موفقیت ، بررسی دوم بررسی می کند. متوجه خواهید شد که بندهای دیگری وجود ندارد. این با طراحی و قوانین بر اساس شرایطی است که شما مشخص می کنید. در هر قاعده ، شما به یک تابع RulesData که در حال بررسی وضعیت چندین متغیر است ، متوجه می شوید. برای اینکه قوانین Drools در برابر داده ها ارزیابی شود ، باید یک POJO ایجاد کنید که نشان دهنده مدل داده باشد. این شامل گیرنده ها و تنظیم کننده ها خواهد بود. مثال زیر را ببینید:

بیایید به قطعه ای از کد جاوا که از قوانین drools استفاده می کند ، نگاه کنیم ، در زیر مشاهده کنید:

این کد یک کیس را ایجاد می کند و سپس داده هایی را که می خواهیم قوانین را برای اجرای آن در Kiesession اجرا کنیم ، وارد می کند. Fireallrules () به Drools می گوید که این کار را انجام دهند ، همه قوانین را آتش می زنند. سپس از بین بردن () برای پاکسازی استفاده می شود. قوانین مبتنی بر جاوا MS خروجی قوانین Drools را می گیرد و در نهایت آن را به کافکا می نویسد که در آن می توان مصرف کرد.

خلاصه

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

امیدوارم این وبلاگ را با ارزش پیدا کنید و از وقت شما سپاسگزارم!

مهندس متمایز ارشد با اشتیاق به میکروسرویس ، منبع باز ، ابر ، معماری واکنشی. مدیریت فرآیند تجارت و موتورهای قوانین.

بیانیه افشای اطلاعات: © 2020 Capital One. نظرات مربوط به نویسنده فردی است. مگر در مواردی که در این پست ذکر نشده باشد ، سرمایه یک به هیچ یک از شرکتهای ذکر شده وابسته نیست و تأیید نمی شود. کلیه علائم تجاری و سایر دارایی های معنوی مورد استفاده یا نمایش داده شده خاصیت صاحبان مربوطه آنها هستند.

استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید

برچسب : نویسنده : توران میرهادی بازدید : <-PostHit-> تاريخ : شنبه 19 فروردين 1402 ساعت: 15:44