Transformer based pre-trained language models (TPTLM) are a complex and fast growing area of AI – so I recommend this paper as a good way to understand and navigate the landscape
We can classify TPTLM from four perspectives
Pretraining Corpus
Model Architecture
Type of SSL (self-supervised learning) and
Extensions
Pretraining Corpus-based models
General pretraining: Models like GPT-1 , BERT etc are pretrained on general corpus. For example, GPT-1
is pretrained on Books corpus while BERT and UniLM are pretrained on English Wikipedia and Books corpus.
This form of training is more general from multiple sources of information
Social Media-based: you could train on models using social media
Language-based: Models could be trained on languages either monolingual or multilingual.
Architecture
TPTLM could be classified based on their architecture. A T-PTLM can be pretrained using a stack of encoders or decoders or both.
Hence, you could have architectures based on
Encoder-based
Decoder-based
Encoder-Decoder based
Self supervised learning – SSL is one of the key ingredients in building T-PTLMs.
A T-PTLM can be developed by pretraining using Generative, Contrastive or Adversarial, or Hybrid SSL. Hence, based on SSLs you could have
Generative SSL
Contrastive SSL
Adversarial SSL
Hybrid SSL
Based on extensions, you can classify TPTLMs according to the following categories
Compact T-PTLMs: aim to reduce the size of the T-PTLMs and make them faster using a variety of model compression techniques like pruning, parameter sharing, knowledge distillation, and quantization.
Character-based T-PTLMs: CharacterBERT uses CharCNN+Highway layer to generate word representations from character embeddings and then apply transformer encoder layers. ex AlphaBERT
Green T-PTLMs: focus on environmentally friendly methods
Sentence-based T-PTLMs: extend T-PTLMs like BERT to generate quality sentence embeddings.
Tokenization-Free T-PLTMs: avoid the use of explicit tokenizers to split input sequences to cater for languages such as Chinese or That that do not use white space or punctuations as word separators.
Large Scale T-PTLMs: Performance of T-PTLMs is strongly related to the scale rather than the depth or width of the model. These models aim to increase the parameters of the model
Knowledge Enriched T-PTLMs: T-PTLMs are developed by pretraining over large volumes of text data. During pretraining, the model learns
Long-Sequence T-PTLMs: self-attention variants like sparse self attention and linearized self-attention are proposed to reduce its complexity and hence extend T-PTLMs to long input sequences
Efficient T-PTLMs: ex DeBERTa which improves the BERT model using disentangled attention mechanism and enhanced masked decoder.
This is a complex area and I hope the taxonomy above is useful. The paper I referred provides more and makes a great effort at explain such a complex landscape
The post is based on a paper which covers this topic extensively: (also image source from the paper)
The distribution of data means the way the data gets spread out. This article talks about some essential concepts of the normal distribution:
How to measure normality
Ways to transform a dataset to fit the normal class distribution
How to use the normal distribution to showcase naturally distributed phenomena and provide statistical insights
Let’s get started!
Suppose you belong to the field of statistics. In that case, you know how vital data distribution is because we always sample from a population where you have no idea about full distribution. As a result, the distribution of our sample might limit the statistical techniques available to us.
Looking at the normal distribution, it is a frequently perceived continuous probability distribution.
When a database meets the normal distribution, you can employ other techniques to explore the data more.
Knowledge about the percentage of data in each standard deviation
Linear least-squares regression
Inference based on the sample mean
In some cases, it can be beneficial to change a skewed dataset to observe the normal distribution. It will be more relevant when your data is usually distributed for some distortion.
Here are the basic features of the normal distribution:
Symmetric bell shape
Equal Mean and median at the center of the distribution
≈68% of the comedown within 1 standard deviation of the mean
≈95% of the data come down within 2 deviations of the mean
≈99.7% of the data falls between 3 standard deviations of the mean
Important terms you need to know as a general overview of the normal distribution:
Normal Distribution:It is a symmetric probability distribution frequently used to represent real-valued random variables. Also called the bell-curved or Gaussian distribution.
Standard Deviation:It measures the amount of variation or dispersion of a set of values. It is also calculated as the square root of variance.
Variance:It is the distance from the mean of each data point
Ways to Use Normal Distribution
If the dataset you have does not conform to the normal distribution, you could apply these tips.
Collect more data:Even a tiny sample size lacking quality could distort your customarily distributed dataset. As a solution, collecting more data is the key.
Reduce sources of variance:Reducing the outliers can help with the normal distribution of data.
Apply a power transform: You can choose to apply the Box-Cox method for skewed data, which refers to taking the square root and the log of the observation.
Let’s also overview some normality measures and how you would use them in a Data science project.
Skewness
It is a measure of asymmetry relative to the mean.
The above graph has negative skewness. That means that the tail of the distribution is longer on the left side. The counterintuitive thing is that most of the data points are clustered on the right side. Make sure you are not getting confused with right or positive skewness that might get represented by this graph’s mirror image.
A Brief on How to Use Skewness
It is a significant factor in model performance. You can use skew from the scipy stats module to measure skewness.
The skewness measure can drive us to the potential deviation in model performance across all the feature values. A positively skewed feature for example the second array in the above image can enable better performance on lower values.
Kurtosis
The original meaning of Kurtosis is a measure of the tailedness of the distribution. It is typically measured relative to 0, the kurtosis value of the normal distribution with Fisher’s definition. A positive kurtosis value identifies “fatter” tails.
The Laplace Distribution has kurtosis > 0. via John D. Cook Consulting.
Understanding kurtosis supply a lens to the presence of outliers in a dataset. To measure kurtosis, you can use kurtosis from the scipy.stats module. Negative kurtosis indicates data that is grouped meticulously around the mean with fewer outliers.
Various naturally occurring datasets conform to the normal distribution. This claim has been made for everything from IQ to human heights. While normal distribution is drawn from observations of nature and frequently occurs, which is true, we risk oversimplification by applying this assumption too liberally.
Often the standard model won’t fit well in the extremes. It also undermines the probability of rare events.
Calculate the Share of Values within SD
As the amount of data set gets larger and larger, calculating the standard deviation (SD) and the number of values falling within each quarter of the bell-shaped curve becomes difficult. To this end, anempirical rule calculator can make the process faster. This calculator calculates the share of values that fall within a particular SD from the mean or the dataset average. To calculate the percentage of values, we just need to have mean and SD value handy.
Summary
This brief article covered everything about normal distribution—some fundamental concepts, how to measure them, and how to use them. Make sure not to over-apply normal distribution, or you risk discounting the chances of outliers. Let us know how it helped you in understanding the concepts.
Today Marketers play the role of advanced and technical matchmakers as their job is to match their target consumers with the products and solutions that best meet their needs or wants. They are also responsible for matching their consumer segments with the content, messaging, creatives, and CTAs that best suits – across all the platforms and channels their audiences are on. Marketers generally face massive barriers to understand how customers engage with marketing campaigns and where & how to optimize them. Data visualization, preparation, charts, dashboards and stats are the top areas where talented and expensive marketing resources are getting exhausted and that too are misaligned. The experienced marketing analysts spend their time preparing data rather than analyzing it, which is the wastage of available resources and not utilizing it efficiently.
Marketers today are looking for a centralized place where all stakeholders can connect to the right information and insights– to make smarter decisions across the customer journey. That means connecting a multitude of different data into a system that understands how they need to fit together can be flexibly improvised over time as per marketing requirements.
Marketers who leverage marketing intelligence successfully tend to have four core steps in the process. These are:
The combination of marketing’s data complexity and requirements of the simplicity of control and adaptability has created the conditions for a smarter approach. The main focus of Marketing Intelligence is to empower the marketing department with its smart insights. Marketing Intelligence uses smart technology that can easily understand and learn from the marketing data which keeps on changing. Now marketers can take control of their data from end to end, with the advances in AI, ML and embedded marketing expertise. This has helped marketers to connect, unify, analyze and act on all of marketing’s data in a way that’s easy– and even automatic.
Datorama helps businesses in handling their processing and analysis of data sets of different sizes and complex levels. It is scalable and cloud-based for growth, access and convenience. Salesforce Datorama, built to provide enterprise-grade intelligence and insights, enables managers to monitor KPIs (key performance indicators), track ROIs (return on investments), and other documents in a centralized repository.
As a leading marketing intelligence platform, Datorama reporting empowers marketers to connect the entire marketing data ecosystem. Equipped with the industry’s most extensive library of marketing API connectors and AI-powered data integration, Datorama can integrate, prepare, and export your marketing data. This is a valuable resource for Marketers looking for the data needed to measure campaign effectiveness and manage marketing performance through improved dashboards and reporting.
Using Datorama’s built-in data integration engine, marketers and media professionals can gain insight into various cross-channel marketing activities and implement data modeling operations. The application allows users to automate various data-related operations like cleansing, model mapping, file analysis, and update scheduling using machine learning technology. Features of Datorama include data analysis, embedded analytics, an interactive dashboard, data visualization, notifications, and more.
Datorama offers APIs, which allows marketing teams to connect the system with various applications for web analytics, customer relationship management (CRM), email management, and more. It also helps marketing agencies allocate campaign budgets, collect client details, and generate custom reports via a unified platform.
Key differentiators & advantages of Datorama
Single Cohesive Data Warehouse
Quick Insights
End-to-End Platform
Data Accessibility
Cross-Channel Visibility
Actionable Insights
Better Business Decisions
Usage and Industries
Datorama brings in all of your top marketing data sources. Customers can create, distribute, and access powerful marketing analytics apps with speed and ease. As a marketer, you want to see all your performance, outcome, and investment data in one place, Datorama allows you to take hold on all these things. You can let datorama’s AI automatically connect and organize any data source with just a few clicks. Easy to use real-time dashboards put your goals, insights, and trends at your fingertips.
Why Salesforce Datorama
Datorama allows users to connect and unify all their data and insights into one centralized platform for holistic reporting, measurement, and optimization.
Analyze and report across all channels and campaigns so every stakeholder in the organization has the right information at their fingertips.
Act and collaborate to drive ROI to bring the organization together toward common goals using built-in activation and collaboration tools to connect customer’s marketing technology stack and decision-makers.
Compares and contrasts the performance of all your channels and campaigns in one view.
Allows marketers to unify all their data, KPIs, and stakeholders across teams, channels, platforms, etc.
Datorama Marketplace unlocks limitless opportunities to deliver and access powerful solutions that leverage the full power of datorama with immediate time to value.
Salesforce marketing cloud email offers customers interactive analytics that helps benchmark and measures the effectiveness of email marketing campaigns.
If you too want to explore the advanced marketing intelligence platforms for the growth of your business, then you can consider the following consultants:
Nabler
EMS Consulting
Search Discovery
ATCS
Blast Analytics
Resources to learn more about Datorama:
Salesforce Official Youtube Channel
Salesforce Trailhead
Salesforce Community
Some of the interesting articles which I came across:
You can always hire Python programmers who are very proficient in developing web applications for small and medium-sized businesses. Also, avail the outstanding services provided by brilliant Python programmers who have mastered the art of creating apps for enterprises and financial industries. They are best for creating custom apps that can make any small business achieve utmost success. This ensures that your app gets more visibility online to gain maximum revenue. As they are experts in programming, you can be assured of a better user experience and a higher level of app functionality.
The Python code offers an excellent value proposition that can prove to be very beneficial for small businesses. It is written in easy-to-understand programming languages, which ensures that all requirements are fulfilled. The best thing about hire python developer is that they offer custom web apps according to your specific requirements. They use unique and superior technologies that are developed based on extensive client feedback and research. Thus, you can be assured of the best quality work at affordable prices.
The technologies employed by a Python programmer are excellent for creating innovative web apps. The technologies that they employ in the most popular Python programming language are active python script, easy-to-use 3D Model oriented interface, Unicode support, Pygments, custom views, direct comprehension, and others. These technologies are what make up the advanced functionality of a Python programmer. Thus, you can hire expert python full-stack developers to ensure that your website performs well.
When you hire full-time or permanent professional developers, you are ensured that your business benefits from their expertise. The dedicated python developers have years of experience in developing websites of various sizes and complexities. Most of these professionals are also experienced programmers that offer full support to your requirements. Thus, you can rely on their expertise to create and develop the best possible website in a short period of time.
When you hire python developers, you get all of the latest tools and frameworks available. You can be sure of the fact that these developers utilize the latest technologies and frameworks that enhance your website performance and functionality. Developers work closely with you to enhance the design and development of your website so that it meets your desired online goals. You can hire the most talented developers so that your web development team can deliver customized and attractive websites to your target customers. You can have a comprehensive and interactive website with high conversion rates.
In today’s competitive market, every business wants to remain ahead of its competitors. This is one reason why you should hire experienced and professional offshore python programmers. These developers can use the best technology available and develop customized apps to cater to your business needs. Thus, you can focus on other aspects of your business and leave the technicalities to the experts.
The developers can use a scalable and robust open-source framework that works well with both small and large organizations. Therefore, you can be assured that your business applications will run smoothly on any platform. With a scalable and robust open-source framework, developers are able to construct advanced apps with minimal coding and integration. So, you can hire angularjs programmers who can easily handle customized and scalable apps that meet your business needs. They can also deliver custom development and solutions that help you save time and money while you concentrate on other aspects of your business.
Developers can work on a full-time and part-time basis. If you need more assistance, you can hire them to complete your project in a faster and better manner. For instance, if you hire programmers who work on a full-time basis, they will be able to provide you with a consistent and reliable solution that works well with your business. However, if you hire programmers who work on a part-time basis, you will be guaranteed their availability so that you can discuss your requirements as and when necessary.
Azure DevOps is the successor to Team Foundation Server (TFS) and is said to be its advanced version. It is a complete suite of software development tools that are being used on-premises. Azure DevOps Server integrates with currently integrated development environments (IDEs) and helps teams to develop and deploy cross-functional software. It provides a set of tools and services with which you can easily manage the planning and development of your software projects through testing and deployment.
Azure DevOps practices enable IT departments to augment quality, decrease cycle times, and optimize the use of resources to improve the way software is built, delivered and operated. It increases agility and enables better software development and speeds up the delivery by providing you the following power:
Curbing cycle times DevOps helps organizations to improve transparency and collaboration amid their development and operations teams as well as helps them to curb cycle times and enhance the traceability of every release.
Resource optimization The implementation of Azure DevOps helps organizations to:
Manage environments to provision/de-provision it
Control costs
Utilize the provisioned resources efficiently
Reduce security risks
Improving quality Azure DevOps facilitates the identification of defects and their main cause early in the development cycle. It helps to test and deploy the solutions to those issues quickly.
Let’s take a look at ways Azure DevOps helps your business grow:
Security
Azure DevOps helps you to unite your hardware, processes and workforce. It is designed in such a way that it completely adheres to the standards of security, control and scalability of almost every company. It works on-premises and if you want to secure your company information onsite, Azure DevOps is the best choice. This Microsoft product also gives you complete control over the access of your organizational data. With Azure DevOps Server, authentication is done through the Active Directory of your organization. Moreover, you can use User Groups to update permissions in Azure DevOps server implementations in bulk.
Bug tracking
The Azure DevOps Server understands your development processes well. It becomes a knowledge base through which you can easily find other bugs of a particular type. You can also search for bugs that were reported for an application before. The Azure DevOps Server also sends notifications ever since the release of the TFS Power Tools.
Collaboration
Sharing is one of the core functions of Azure DevOps. Every organization optimizes its code to host and manage it centrally. No matter what sort of code your organization uses for arranging accounts or managing servers, you can store it in the Azure DevOps Server. This provides you a central location to manage your codes. Apart from storing and sharing, you can also manage your code by versioning it through the Azure DevOps Server.
Work items
The Azure DevOps Server not only helps you to manage your code, but also facilitates you to organize the administration of systems with work items. A work item can be a server, project risk, system bug, or anything that you want. When you create work items for a process template, you can model it in an Agile Framework or the Capability Maturity Model Integration (CMMI) as per the requirement of your process. Irrespective of the arrangement, work items help your team to segregate difficult systems into feasible workloads.
Azure DevOps CI / CD pipeline
The Azure DevOps Server provides a strong platform to deploy solutions in a pipeline permitting continuous integration and delivery in a software-driven organization. Furthermore, it offers an extensive marketplace for plug-ins and integrations through which you can incorporate infrastructure-as-code into the pipeline with the help of which, the system administrator can automate changes from a single location.
Increases agility
The Azure DevOps Server offers fully integrated deployment capabilities and facilitates organizations with faster time to market. It helps you to deploy changes as and when required and sets you free from a restricted release cycle every quarter.
Continuous updates
With the Azure DevOps Server, the software gets updated regularly which ensures that it is future-proof. The software bugs get cleaned and still it continues to support the latest advancements in technology.
Minimizes outages
Outage reduction leads to big value. By implementing the DevOps approach, organizations can improve their work processes, automation and deployment. They also prevent the inferences that arise as a result of the outage.
Advanced innovation
When you minimize outages and deploy code with better quality, you can spare more time to improve your working methods. Since you have to spend less time fixing issues that arise as a result of deployment, you drive greater business outcomes.
Conclusion
By now you would have understood that the Azure DevOps Server has evolved with the arrival of new technologies to cater to the increasing demands for fast processes and superior quality. It provides you with outstanding features and functionality in one platform. The incorporation of Azure DevOps offers the finest internal culture and drives expanding growth for your company. Talk to our experts to discuss your business needs and let us help you achieve your goals with our Azure DevOps services
Cognitive RPA (Robotic Process Automation), as the name itself, suggests, provides intelligence to conventional RPA. Conventional RPA is extremely good at automating rule-based tasks involving structured and semi-structured data.
However, with enterprise processes being highly complex and technologically intertwined, utilizing both structured and unstructured data becomes complicated. It is imperative that only the RPA solution would not suffice. The digital workforce (Bots) would be required to make complex decisions that involve learning, reasoning, and self-healing capabilities.
In a nutshell,Cognitive RPAis RPA on steroids. It utilizes artificial intelligence technologies like computer vision, OCR (Optical Character Recognition), document understanding,NLP (Natural Language Processing), Text Analytics, and numerous custom-built or out-of-the-box Machine learning & Deep Learning models that help bots make complex decisions while automating an end-to-end process.
In addition, many vendors are providing Human in Loop capabilities where the output ofAI/ML modelsis validated by humans (Business SME), and post their approval, bots take the automated process to its completion.
Along with automating web-based applications, RPA can also automate Windows applications and legacy applications, for which developing IT integration would be a cost-intensive, time-consuming and gargantuan task. RPA can mimic what an end-user does with near-zero errors and without being fatigued, bored, or roguelike humans. It offers higher accuracy, increased performance, increased adherence to SLA, and better compliance. With this amalgamation of AI and RPA (Cognitive RPA), we can now automate end-to-end processes and can handle complex cases which would have earlier required human interventions.
The main goal of Cognitive RPA is to take up all mundane, repetitive, and tedious tasks from humans so that they can focus on more strategic tasks rather than worrying about the former. The motto is “If you hate it, just automate it.”
New Subscriber Verification: Individual’s identity-related information is extracted from the submitted proof image and is matched against user input for any discrepancies. Moreover, the individual’s picture in ID proof is matched with their current picture and against pictures of fraudsters to verify the new subscriber’s identity.
Invoice Processing: Extracts vital information from invoices like Bill To, Ship To, Due Date, Invoice, line items, total, etc., to run an audit against system entries by reconciling extracted information against them.
Digital Assistant: Identifies failed jobs and takes remediation actions by understanding from underlying logs.
FCR (First Call Resolution): Resolving customer’s concerns from the first call to a customer care center, bots can assist employees by offering real-time guidance (retrieving customer information, re-keying updated information, trigger issue to resolution workflow for known issues, etc.).
Information Security Audits: Bots can easily collect evidence (logs, database records, flat files, etc.) across disparate systems and analyze them for any non-conformities against set enterprise policies, procedures, and guidelines.
We, at Subex, help customers realize value from Cognitive RPA implementation. We play the role of Trusted Advisor helping clients with Process discovery (identifying the process), Evaluation and Selection of the process – fit for RPA, Process Standardization (creation of user-friendly templates, documentation, communication plans, etc.), even Process Re-Engineering if required. Post finalization of the process for automation; High Level and Low-Level Designs are created in constant consultation with Business / Process SME. After rigorous iterative development and testing cycles, the full-fledge RPA solution is delivered so that customers can reap full benefits from it. We also undertake consulting assignments helping enterprises set up RPACoE (Center of Excellence), Scale-Up their RPA journey, and assist them in stepping forward from conventional RPA to Cognitive RPA.
But first, let’s address the question, “What is computer vision?” In simple terms, computer vision trains the computer to visualize the world just like we humans do. Computer vision techniques are developed to enable computers to “see” and draw analysis from digital images or streaming videos. The main goal of computer vision problems is to use the analysis from the digital source data to convert it into something about the world.
Computer vision uses specialized methods and general recognition algorithms, making it the subfield of artificial intelligence and machine learning. Here, when we talk about drawing analysis from the digital image, computer vision focuses on analyzing descriptions from the image, which can be text, object, or even a three-dimensional model. In short, computer vision is a method used to reproduce the capability of human vision.
Deep Neural Networks Addressing 8 Challenges in Computer Vision
As studied earlier, computer networks are one of the most popular and well-researched automation topics over the last many years. But along with advantages and uses, computer vision has its challenges in the department of modern applications, which deep neural networks can address quickly and efficiently.
1. Network Compression
With the soaring demand for computing power and storage, it is challenging to deploy deep neural network applications. Consequently, while implementing the neural network model for computer vision, a lot of effort and work is put in to increase its precision and decrease the complexity of the model.
For example, to reduce the complexity of networks and increase the result accuracy, we can use a singular value decomposition matrix to obtain the low-rank approximation.
2. Pruning
After the model training for computer vision, it is crucial to eliminate the irrelevant neuron connections by performing several filtrations of fine-tuning. Therefore, as a result, it will increase the difficulty of the system to access the memory and cache.
Sometimes, we also have to design a unique collaborative database as a backup. In comparison to that, filter-level pruning helps to directly refine the current database and determine the filter’s importance in the process.
3. Reduce the Scope of Data Values
The data outcome of the system consists of 32 bits floating point precision. But the engineers have discovered that using the half-precision floating points, taking up to 16 bits, does not affect the model’s performance. As the final solution, the range of data is either two or three values as 0/1 or 0/1/-1, respectively.
The computation of the model was effectively increased using this reduction of bits, but the challenge remained of training the model for two or three network value core issues. As we can use two or three floating-point values, the researcher suggested using three floating-point scales to increase the representation of the network.
4. Fine-Grained Image Classification
It is difficult for the system to identify the image’s class precisely when it comes to image classification. For example, if we want to determine the exact type of a bird, it generally classifies it into a minimal class. It cannot precisely identify the exact difference between two bird species with a slight difference. But, with fine-grained image classification, the accuracy of image processing increases.
Fine-grained image classification uses the step-by-step approach and understanding the different areas of the image, for example, features of the bird, and then analyzing those features to classify the image completely. Using this, the precision of the system increases but the challenge of handling the huge database increases. Also, it is difficult to tag the location information of the image pixels manually. But in comparison to the standard image classification process, the advantage of using fine-grained classification is that the model is supervised by using image notes without additional training.
5. Bilinear CNN
Bilinear CNN helps compute the final output of the complex descriptors and find the relation between their dimensions as dimensions of all descriptors analyze different semantic features for various convolution channels. However, using bilinear operation enables us to find the link between different semantic elements of the input image.
6. Texture Synthesis and Style Transform
When the system is given a typical image and an image with a fixed style, the style transformation will retain the original contents of the image along with transforming the image into that fixed style. The texture synthesis process creates a large image consisting of the same texture.
a. Feature Inversion
The fundamentals behind texture synthesis and style transformation are feature inversion. As studied, the style transformation will transform the image into a specific style similar to the image given using user iteration with a middle layer feature. Using feature inversion, we can get the idea of the information of an image in the middle layer feature.
b. Concepts Behind Texture Generation
The feature inversion is performed over the texture image, and using it, the gram matrix of each layer of the texture image is created just like the gram matrix of each feature in the image.
The low-layer features will be used to analyze the detailed information of the image. In contrast, the high layer features will examine the features across the larger background of the image.
c. Concept Behind Style Transformation
We can process the style transformation by creating an image that resembles the original image or changing the style of the image that matches the specified style.
Therefore, during the process, the image’s content is taken care of by activating the value of neurons in the neural network model of computer vision. At the same time, the gram matrix superimposes the style of the image.
d. Directly Generate a Style Transform Image
The challenge faced by the traditional style transformation process is that it takes multiple iterations to create the style-transformed image, as suggested. But using the algorithm which trains the neural network to generate the style transformed image directly is the best solution to the above problem.
The direct style transformation requires only one iteration after the training of the model ends. Also, calculating instance normalization and batch normalization is carried out on the batch to identify the mean and variance in the sample normalization.
e. Conditional Instance Normalization
The problem faced with generating the direct style transformation process is that the model has to be trained manually for each style. We can improve this process by sharing the style transformation network with different styles containing some similarities.
It changes the normalization of the style transformation network. So, there are numerous groups with the translation parameter, each corresponding to different styles, enabling us to get multiple styles transformed images from a single iteration process.
7. Face Verification/Recognition
There is a vast increase in the use cases of face verification/recognition systems all over the globe. The face verification system takes two images as input. It analyzes whether the images are the same or not, whereas the face recognition system helps to identify who the person is in the given image. Generally, for the face verification/recognition system, carry out three basic steps:
Analyzing the face in the image
Locating and identifying the features of the image
Lastly, verifying/recognizing the face in the image
The major challenge for carrying out face verification/recognition is that learning is executed on small samples. Therefore, as default settings, the system’s database will contain only one image of each person, known as one-shot learning.
a. DeepFace
It is the first face verification/recognition model to apply deep neural networks in the system. DeepFace verification/recognition model uses the non-shared parameter of networks because, as we all know, human faces have different features like nose, eyes, etc.
Therefore, the use of shared parameters will be inapplicable to verify or identify human faces. Hence, the DeepFace model uses non-shared parameters, especially to identify similar features of two images in the face verification process.
b. FaceNet
FaceNet is a face recognition model developed by Google to extract the high-resolution features from human faces, called face embeddings, which can be widely used to train a face verification system. FaceNet models automatically learn by mapping from face images to compact Euclidean space where the distance is directly proportional to a measure of face similarity.
Here the three-factor input is assumed where the distance between the positive sample is smaller than the distance between the negative sample by a certain amount where the inputs are not random; otherwise, the network model would be incapable of learning itself. Therefore, selecting three elements that specify the given property in the network for an optimal solution is challenging.
c. Liveness Detection
Liveness detection helps determine whether the facial verification/recognition image has come from the real/live person or a photograph. Any facial verification/recognition system must take measures to avoid crimes and misuse of the given authority.
Currently, there are some popular methods in the industry to prevent such security challenges as facial expressions, texture information, blinking eye, etc., to complete the facial verification/recognition system.
8. Image Search and Retrieval
When the system is provided with an image with specific features, searching that image in the system database is called Image Searching and Retrieval. But it is challenging to create an image searching algorithm that can ignore the slight difference between angles, lightning, and background of two images.
a. Classic Image Search Process
As studied earlier, image search is the process of fetching the image from the system’s database. The classic image searching process follows three steps for retrieval of the image from the database, which are:
Analyzing appropriate representative vectors from the image
Applying the cosine distance or Euclidean distance formula to search the nearest result and find the most similar image representative
Use special processing techniques to get the search result.
The challenge faced by the classic image search process is that the performance and representation of the image after the search engine algorithm are reduced.
b. Unsupervised Image Search
The image retrieval process without any supervised outside information is called an unsupervised image search process. Here we use the pre-trained model ImageNet, which has the set of features to analyze the representation of the image.
c. Supervised Image Search
Here, the pre-trained model ImageNet connects it with the system database, which is already trained, unlike the unsupervised image search. Therefore, the process analyzes the image using the connection, and the system dataset is used to optimize the model for better results.
d. Object Tracking
The process of analyzing the movement of the target in the video is called object tracking. Generally, the process begins in the first frame of the video, where a box around it marks the initial target. Then the object tracking model assumes where the target will get in the next frame of the video.
The limitation to object tracking is that we don’t know where the target will be ahead of time. Hence, enough training is to be provided to the data before the task.
e. Health Network
The usage of health networks is just similar to a face verification system. The health network consists of two input images where the first image is within the target box, and the other is the candidate image region. As an output, the degree of similarity between the images is analyzed.
In the health network, it is not necessary to visit all the candidates in the different frames. Instead, we can use a convolution network and traverse each image only once. The most important advantage of the model is that the methods based on this network are high-speed and can process any image irrespective of its size.
f. CFNet
CFNet is used to elevate the tracking performance of the weighted network along with the health network training model and some online filter templates. It uses Fourier transformation after the filters train the model to identify the difference between the image regions and the background regions.
Apart from these, other significant problems are not covered in detail as they are self-explanatory. Some of those problems are:
Image Captioning: Process of generating short description for an image
Visual Question Answering: The process of answering the question related to the given image
Network Visualizing and Network Understanding: The process to provide the visualization methods to understand the convolution and neural networks
Generative Models: The model use to analyze the distribution of the image
There is a tendency, even among people who should know better, to view the data that one has access to in an organization as being of perfect quality and utility. In reality, the data that any organization collects over time can range from being highly useful to a waste of computer cycles and processing effort, and an effective part of any data strategy is understanding what is a treasure and what is, to put it simply, an eyesore..
1. Entropy
Entropy is a measure of uncertainty associated with random variables.
Example: The meteorology department wants to tell whether it’s going to rain or not today. And they have the weather data collected from various devices. The data has attributes of wind, pressure, humidity and precipitation.
If you pick one value from the series of Humidity values, how certainly can it tell when it is going to rain or not? Is the entropy associated with Humidity random variable.
If entropy is too high,it indicates the Humidity variable has not potential to tell that it’s going to rain or not. If entropy is less, then Humidity is a good variable to be considered in further analysis.
2. Outliers
Outlier is a measure of unusualness associated with a random variable.
Though Humidity has a good potential to solve the problem, not all of it’s values can be useful to the calculation. Create a boxplot and determine the number of outliers.
If more percentage of values are lying outside the box, then the final outcome would be less accurate. In such a case, we need to discard the Humidity variable. Take one more variable and start with Entropy test.
3. Covariance
Covariance is a measure of relationship between two variables. How variable X changes when variable Y changes. X and Y may have different units of measurements.
Example, if Humidity decrease as Wind increases, then there is a relationship between Humidity and Wind. This relationship adds more value in solving the problem.
How many variables are there that have covariance with at least one other variable is the count we need to measure. Higher this count, more evidence we can derive towards the final outcome.
Good Dataset:
More number of variables that have strong covariance with few/more other variables.
Bad Dataset:
Less number of variables that have strong covariance with few other variables.
More number of variables that have weak covariance with many other variables.
A possible outcome of this assessment could like this:
Humidity has potential to certainly tell it rains or not.
Wind has potential to certainly tell it rains or not.
Most of the values of Humidity & Wind can participate in the calculation. The accuracy is within the acceptable limits.
Humidity and Wind Together has more potential to drive the decision — whether it rains or not.
Finally you need to ask these questions to yourself, and feel satisfied with the answers:
I’m relatively old school, semantically speaking: my first encounters with RDF was in the early 2000s, not long after Tim Berners-Lee’s now-famous article in Scientific American introducing the Semantic Web to the world. I remember working through the complexities of RDFS and OWL, spending a long afternoon with one of the editors of the SPARQL specification in 2007, promoting SPARQL 1.1 and SHACL in the mid-2010s, and watching as the technology went from being an outlier to having its moment in the sun just before COVID-19 hit.
I like SPARQL, but increasingly I have to admit a hard reality: there’s a new kid on the block that I think may very well dethrone the language, and perhaps even RDF. I’m not talking about Neo4J’s Cypher (which in its open incarnation is intriguing), or GQL, TigerGraph’s SQL-like language intended to bring SQL syntax to graph querying. Instead, as the headline suggests, I think that the king of the hill will likely end up being GraphQL.
The Semantic Web Is In Trouble
Before getting a lot of brickbats from colleagues in the community about this particular assertion, I want to lay out some of my own observations about where and why I believe the Semantic Web is currently in trouble:
Too Complex. It took me a few years to really grok how RDF worked, in part because it assumed that people would be able to understand the graph paradigm and logical inferencing models. If you have a Ph.D. in computational linguistics, RDF is not hard to understand, but if you have a two-year certificate in programming JavaScript or Python, chances are pretty good that RDF’s graph model is incomprehensible. Add into that configuring triple store graphs can be a logistical nightmare and the likelihood that most programmers – let alone data analysts – would have encountered RDF drops dramatically.
Inference an Edge Case. One of the most powerful aspects of RDF, at least as far as proponents of the technology would have it, is its ability to be used for logical inferencing. Inferencing, which involves the ability to use aspects of the model itself to surface new information, can make for some very potent applications, but only if the model itself is navigable in the same way as other information, and only if the model is designed to make such inferences easily. However, in practice, many complex models have foundered because inheritance was made too complicated or the models failed to take into account temporal complexities. Moreover, with SPARQL, the need for intrinsic inferencing dropped fairly dramatically. Without that use case, though, many of the benefits of RDF fall by the wayside.
Lack of Intrinsic Sequencing. RDF works upon the (admittedly valid) assumption that in a graph there is no intrinsic ordering. It is possible to create extrinsic ordering by creating a linked list, but because path traversal order is not in fact uniformly respected, retaining this via SPARQL is not guaranteed. Since there are a great number of operations where sequencing is in fact very important, this limitation is a significant one, and in a world where object databases (which support arrays or sequences) are increasingly the norm, there are many analytics-related activities that simply cannot be done on the current crop of knowledge bases.
Use Case Failures. I’ve been involved in a number of semantics projects over the years. Most of them had, at best, mixed success, and several have been abject failures that have since been superseded by other technologies. Natural language processing seemed, a decade ago, to be a bright spot in the semantic web firmament, but if you look at the field ten years later, most of the real innovations have had to do with machine learning, from BERT to the latest GPT-3. There are places where graph technology has made huge inroads, but increasingly those areas are built around labeled property graphs, not rdf graphs. There are areas where knowledge graphs could make a huge difference (compliance modeling, for instance), but when no one can agree to what exactly those models look like, it’s not surprising that areas such as smart contracts are simply not getting off the ground.
Poor Format Interoperability. RDF is an abstraction language, but it has been dependent upon various and sundry representations, many of which have … issues. RDF-XML made even hardened XML users squeamish. Turtle is an elegant little language until one has to manage namespaces, but it has comparatively few people who have adopted it, and it doesn’t do terribly well in an environment where JSON is the dominant mode of communication. JSON-LD was a nice try. In most cases, the issues involved come down to the fact that JSON is an object description language that assumes hierarchical folding, while RDF is fundamentally normalized, and that especially with complex directed graphs, the boundaries between objects is far from clearcut in many cases.
Lack of Consistent Ingestion. This is a two-fold problem. It is hard to ingest non-RDF content into an RDF form. Part of this has been that the process of ingestion was never really defined from the outset since the assumption at the time was that you loaded in Turtle (or even more primitive representations) and then made use of inference upon an existing body of assertions. Once you move beyond the idea of static content, then all of the complexities of transactional databases have to be solved for triple stores as well. There have been many good solutions, mind you, but there was no real uniformity that emerged.
Graph databases are powerful tools, especially in a world of high data connectivity, but it is increasingly becoming evident that even for knowledge bases, it’s time to refactor.
The Promise of GraphQL
I started working with RDF about the time that I came to a realization about another query language (XQuery) and the nature of documents in an XML world. An XML database is typically a collection of documents, each with its own URL. That URL (uniform resource locator) was also an IRI (international resource identifier). For narrative documents, the assumption that every subdocument (such as a chapter) was self-contained in the base document was generally a valid one, though there were exceptions (especially in textbook publishing). Once you start dealing with documents that describe other kinds of entities, however, this assumption broke down, especially when multiple containers referenced the same subdocument.
While the concept of the IRI is a fundamental one in XML, it took a while to build a semantic linking language, and there were several different attempts that went off in different directions (xlink, rdf, rdfa, xpointer and so forth). Part of the reason for this confusion comes from the fact that most people don’t differentiate even now between a link pointer to a node in a communications network (the Internet, or some subsection thereof) and a link pointer to a node in a knowledge (or conceptual) network. Nor should this be that surprising – it’s not a distinction that usually comes up in database theory, because most databases are internally consistent with respect to references (aka keys or pointers), and the idea of conceptual links makes no sense in a SQL database as a consequence.
Additionally, if you are used to working with document object serializations, such as JSON, then the idea of having to create complex queries just to get specific objects of a given type seems like a lot of work, especially when the result comes back normalized (e.g., in discrete, identified blocks) rather than in hierarchical documents – and especially when you could already get back the same thing from a JSON database such as Couchbase or ArrangoDB.
For the most part, in fact, what developers want is a way to get at a particular part of a document, applying transformations to that document as needs be, without having to worry about stitching a set of components together. Similarly, they want to be able to post content in such a way that it can be checked for validity. They could do this with XQuery, but XML notationally is seen as too heavy-weight (an argument with comparatively little merit), whereas JSON fits into the paradigm that they are most familiar with syntactically.
This is what GraphQL promises, and for a fairly wide array of use cases, this is what both programmers and data scientists want.
What is significant about this is that GraphQL manages to accomplish much of what Sparql and the RDF stack promised but never fully delivered. Specifically,
Ease of Use. GraphQL requires both a client and a server to build the query, but that client makes schematic discovery relatively simple,
Data Store Agnostic. GraphQL can work on a relational database, a triple store, an Excel document, or a data service, for both ingestion and query.
Transformable. There is a limited capability to perform transformations on the data set through both the query and mutation language.
Mutable. Mutations for updating content on the server can be accomplished through a mutational query that is again system agnostic.
Schematic. While not quite as robust as RDF, GraphQL makes use of TypeScript or JSON Schema to specify the schematic relationships, and can be validated prior to entry.
JSON-Centric. A decade ago, there was still some question about whether XML or JSON would predominate. Today, there is no real question – for non-narrative content, JSON has pretty much won, while XML is (not surprisingly) still favored for narrative content, if not as heavily.
Federated. It is possible (with extensions) to make GraphQL queries federated. SPARQL still has the edge here, but federation is also still not widely utilized even in RDF-land.
Put another way, GraphQL provides an abstraction layer that is good enough in most cases, and preferable in others (such as sequencing) to what SPARQL provides.
GraphQL and Knowledge Graphs
This does not necessarily mean that GraphQL will eliminate the need for knowledge graphs or RDF, but it does change the role that languages such as Sparql, Cypher, or similar dialects play. One aspect where this does play a significant role is in creating GraphQL schemas. A relational database schema is generally fixed by convention, while both XML and JSON schemas when they do exist, do so primarily as a means of initiating actions based upon compliance with rules. Typescript is simply not robust enough for that role when it involves constraint modeling, and given the variability involved in different data systems, it is likely that this particular function will remain the purview of the data store.
Similarly, inferencing involves the construction of triples through either an inference engine or a SPARQL script (or both). One of the major issues working with Triple Stores is the security aspect involved with queries. If, when the underlying data model changes, a SPARQL script is used to construct a TypeScript document from the RDF schema, then this actually provides a layer of protection. The RDF models an internal state, The GraphQL models an external representation of that state.
This also can also help with mutations, providing a proxy layer that can map between the internal and external presentation of the state of the knowledge graph. SPARQL Update is a powerful tool, but because that tool is so powerful it is one that many database administrators are reluctant to grant to external users. This also allows for the insertion of additional metadata and or the creation of maps between JSON content and RDF in a consistent and controlled manner, including the generation of consistent timestamps and IRIs.
Additionally, an increasing number of GraphQL implementations on Knowledge Graphs make use of the JSON-LD context object. This provides a way of maintaining IRIs without significantly impacting the utility of the JSON produced by GraphQL. That approach also solves one of the peskier aspects of JSON-LD, in that a GraphQL generated JSON structure can be denormalized, reducing the need to do so out of band.
The Future of Semantic GraphQL
Nonetheless, GraphQL will likely push the engines involved with RDF towards JSON/hybrid stores over the next few years. Triple stores in general are built around n-tuple indexes, though with additional indexes encoding intermediate structures optimized for JSON retrieval. These so-called hybrid databases can also present service layers to look like relational data stores, albeit with some potential lossiness.
This also points to a future where federated queries become less likely, rather than more, which shouldn’t be all that surprising. Federation has a lot of issues associated with it, from semantic ones (the challenge of standardizing on a particular ontology) to performance issues (latency in connections) to security and accessibility. However, with GraphQL, the cost of developing a translation layer becomes fairly low and the onus is put not on the data provider but the data consumer. Indeed, I can see an aftermarket for common ontology to ontology queries, which may very well mitigate one of the bigger headaches involved in linked data.
GraphQL may also end up being a bridge between semantic and labeled property graph (LPG) operations. While it is possible to do shortest path calculations in an RDF graph, it’s not the most efficient way of utilizing such graph (indeed, shortest path calculations, used in everything from traffic applications to genetic sequencing are essentially where LPGs excel. On the other hand, LPGs are at best indifferent for inferencing. Yet GraphQL could readily load LPGs with data pulled from property graphs, could perform multiple optimizations, then could return the results through a known interface.
Finally, it is possible that we’re on the right track with regards to true reasoning as a system of computation on logical formalisms, but my suspicion is that reasoning requires that you have context, the ability to work with fuzzy logic, and the kind of Bayesian analysis that seems to be the hallmark of machine learning. In other words, the semantic systems of today are likely at best very primitive approximations of where they will be in a decade or two. Indeed, this was something that mathematician Kurt Godel proved nearly a century ago. We learn from that, build on to it, and move on.
Regardless, I think it is safe to say that, regardless of where we end up, GraphQL will likely have an important part to play in getting there.
Kurt Cagle is the managing editor of Data Science Central.
Programmers, when first learning their trade, spend a few weeks or months working on the basics – the syntax of the language, how to work with strings and numbers, how to assign variables, and how to create basic functions. About this time, they also encounter two of their first data structures: lists and dictionaries.
Lists can be surprisingly complex structures, but in most cases, they consist of sequences of items with pointers (or links) from one item to the next. While navigation can be handled by traversing the linked list (also known as an array), most often this is shortcircuited by passing in a numeric index that can be given from 0 (or 1 in some languages) to the position of whatever item is required.
A similar structure is known as a dictionary. In this particular case, a dictionary takes a symbol rather than a position indicator and returns an item. This is frequently referred to as a look-up table. The symbol, or key, can be a number, a word, a phrase, or even a set of phrases, and once the keys are given, the results can vary from a simple string to a complex object. Almost every database on the planet makes use of a dictionary index of some sort, and most databases actually have indexes that in turn are used to look up other indexes.
One significant way of thinking about indexing is that an index (or a dictionary) is a way of storing computations. For instance, in a document search index, the indexer will read through a document as it is loaded, then every time a new word or phrase occurs (barring stop words such as articles or prepositions) that word is used to indicate the document. The indexer will also pick up stem forms of a given word (which are indexed to a root term) so that different forms of the same word will be treated as one word.
This is a fairly time-consuming task, even on a fast processor, but the advantage to this approach is that once you have performed it once, then you only need do it again when the document itself changes. Otherwise, instead of having to search through the same document every time a query is made, you instead search the index, find which documents are indexed by the relevant keywords, then retrieve those documents within milliseconds. You can even use logical expressions to string keywords together, finding either the union or intersection of documents that satisfy that expression, and then return pointers to just the corresponding documents.
Machine learning, in this regard, can be seen as being another form of index, especially when such learning is done primarily for classification purposes. The training of a machine learning model is very much analogous to the processing of documents into an index for word usage or semantic matching, save that what is being consumed are test vectors, and what is produced is the mapping of a target vector to a given configuration.
Additionally, natural language processing is increasingly moving towards models where context is becoming important, such as Word2Vec, BERT, and most recently the GPT-2 and GPT-3 evolutions. These are shifting from statistical modeling and semantic analysis to true neural networks, with context coming about in part by the effective use of indexing. By being able to identify, encode, and then reference abstract tokenization of linguistic patterns in context, the time-consuming part of natural language understanding (NLU) can be done independently of the utilization of these models.
A query, in this regard, can also be seen as being a key, albeit a more sophisticated one. In RDF semantics, for instance, the queries involve finding patterns in linked indexes, then using these to retrieve assertions that can be converted into data objects (either tables or structured content). Graph embeddings present another approach to the same problem. It is likely that the next stage of evolution in this realm of search and query will be the creation of dynamically generated queries against machine learning models, in essence treating the corresponding machine learning model into a contextual database that can be mined for inferential insight.
In that regard, neural-network-based machine learning systems will increasingly take on the characteristics of indexed databases, in a manner similar to that currently employed by SQL databases, structured document repositories, and n-tuple data stores. At this point, such query systems are likely still a few years out, but the groundwork is increasingly leaning towards the notion of model as database.
This in turn will drive applications driven by such systems, in both the natural language understanding realm (NLU) and the natural language generation (NLG) one. It is my expectation that these areas, perhaps more even than automated visual recognition, will become the hallmark of artificial intelligence in the future, as the understanding of language is essential to the development of any cognitive social infrastructure.